WordPress更新-这通常是由于文件权限不一致。例如:wp-admin/includes/update-core.php

时间:2021-03-18 作者:Saeed

我有一些具有根访问权限的WordPress网站服务器,在创建服务器时,一切都很好,WordPress本身以及插件和主题都在更新,没有出现任何问题,但我不知道为什么最近我遇到了一个错误,通常指示权限错误(至少我看到权限是正确的)。

更新WordPress时出错:

正在从下载更新https://downloads.wordpress.org/release/fa_IR/wordpress-5.7.zip…

wordpress-5.7的真实性。无法验证zip,因为找不到签名。

正在解压缩更新…

无法安装更新,因为我们将无法复制某些文件。这通常是由于文件权限不一致造成的:wp管理/包括/更新核心。php

安装失败。

以下是我为调查问题所做的:

ls -ld /home
drwx--x--x 26 root root 4096 Mar 9 20:03 home
ls -ld /home/my_user
drwx--x--x 26 my_user my_user 4096 Mar 9 20:03 /home/my_user/
ls -ld /home/my_user/public_html
drwxr-x--- 26 my_user nobody 4096 Mar 9 20:03 /home/my_user/public_html/
此外,public\\u html权限内的所有文件都是0644,所有目录都是0755。

cd /home/my_user/public_html/
find . -type f -exec chmod 644 {} \\; && find . -type d -exec chmod 755 {} \\;
find . -type f -exec chown my_user:my_user {} \\; && find . -type d -exec chown my_user:my_user {} \\;
的结果lsattr 具体如下:

lsattr /home/my_user/public_html/wp-admin/includes/update-core.php
-------------e-- /home/my_user/public_html/wp-admin/includes/update-core.php
所以到目前为止,在我看来,权限和所有权没有什么问题。

正在检查wp-admin, wp-admin/includeswp-admin/includes/update-core.php 权限和所有权很好,没有问题,但我不知道为什么WordPress不能安装任何插件、主题或自身。

PHP处理程序是suphp (我还用cgilsapi) 但在这方面没有任何变化。

Apache配置如下:

MPM: mod_mpm_prefork
Apache modules (some of them):
mod_cgi
mod_lsapi
mod_mpm_prefork
mod_suexec
mod_suphp
我应该提到,我创建了一个文件,如info.php 并在web浏览器中执行,这很好。那么我chowned喜欢root:root 在第二种情况下,我得到403错误(这是预期的),然后我再次将其还原为my_user:my_user

Apache组为nobody 我想,而且public_html 目录的chownmy_user:nobody. 因此,我的网站和其他网站运行良好,但唯一的问题是更新或甚至尝试安装插件/主题/新更新时。

我检查了日志文件,但没有记录任何内容。

1 个回复
SO网友:Mike P. Sinn

我通过让webserver用户成为WordPress目录中所有文件的所有者和组来解决这个问题。

我发现Web服务器用户是daemon的:

ps aux | egrep \'(apache|httpd)\'
然后,我更改了以下权限:

sudo chown -R daemon:daemon /your-path-to-wordpress