我需要确定Wordpress更新过程认为它是什么用户,因为它不是运行所有其他页面和帖子的用户,因为我拥有apache所有的文件和文件夹所有者。
WordPress更新过程不知道它作为哪个用户运行,也不关心。它甚至不检查用户,为什么要检查。文件的所有者和PHP进程正在运行的用户可能会有很大的不同。如果它是错误的用户,那么WP将不知道也无法对此采取任何措施。
PHP-FPM运行的所有代码都将在同一个用户下运行,无论是WordPress还是quickinfo.php
您输入了web根目录。
你的问题是:
警告:复制(/var/www/html/wp-admin/includes/update-core.php):无法打开流:在/var/www/html/wp-admin/includes/class-wp-filesystem-direct中权限被拒绝。php在线281
从PHP文件运行的代码没有修改该文件的权限。PHP警告来自PHP本身,而不是WordPress的输出。
您需要:
确认文件可从PHP进程用户写入/删除确认文件夹可从PHP进程用户写入/删除。文件权限良好并不意味着文件夹也很好,也不意味着该文件夹的所有权对所属用户和所属组都是正确的。仅仅因为文件权限和文件夹权限很好,并不意味着它们适用于PHP进程用户这并不像用chmod设置正确的权限号那么简单。所有权至关重要。
例如,664:
如果主人
root
.
apache
都不是
root
用户或中的
root
组(我假设您的特定系统就是这样)。
因此apache
将落入other
bucket和其他组仅具有读取权限。
但是,如果它是由与共享同一组的另一个用户拥有的apache
, 或者它的所有者apache
那么,它自己664
可能适用于所有者或组权限。
775怎么样?
这是相同的,但您已使文件可执行。
因此,对于您的问题,这里没有WordPress特定的解决方案,即文件夹不能通过PHP脚本写入。
另一方面,您应该将所有WP核心文件只读给PHP用户,以便恶意软件无法修改它们,然后使用外部工具更新WP,如cron作业上的WP CLI,或使用git
.
因此,您的问题和解决方案涉及文件/文件夹所有权和权限。可能您的apache用户不在适当的组中。也许它不拥有这些文件?只有你知道。