无法更新到WordPress 4.7.2-错误:文件权限不一致

无法更新到WordPress 4.7.2-错误:文件权限不一致,wordpress,permissions,Wordpress,Permissions,当我试图通过管理员自动将WordPress更新为4.7.2时,我一直收到此错误消息: 更新WordPress 正在从下载更新 正在解压缩更新 无法安装更新,因为我们将无法复制某些文件。这通常是由于文件权限不一致造成的。:wp admin/includes/update-core.php 安装失败 我尝试在服务器上运行以下命令,但仍收到错误消息: sudo find . -type f -exec chmod 664 {} + sudo find . -type d -exec chmod 775

当我试图通过管理员自动将WordPress更新为4.7.2时,我一直收到此错误消息:

更新WordPress 正在从下载更新

正在解压缩更新

无法安装更新,因为我们将无法复制某些文件。这通常是由于文件权限不一致造成的。:wp admin/includes/update-core.php

安装失败

我尝试在服务器上运行以下命令,但仍收到错误消息:

sudo find . -type f -exec chmod 664 {} +
sudo find . -type d -exec chmod 775 {} +
sudo chmod 660 wp-config.php

我做错了什么?自动更新不应该使用正确的文件/文件夹权限吗?

您是否尝试过通过FTP(Filezilla)等程序手动上传更新后的WordPress文件?你还有同样的问题吗

更新:

运行以下命令

将所有文件的权限重置为664:

find /path/to/site/ -type f -exec chmod 664 {} \;
将目录权限重置为775:

find /path/to/site/ -type d -exec chmod 775 {} \;
将组重置为wordpress组(或任何对您有意义的组)


对我来说,下面的命令奏效了。在下面的示例中,将“www数据”替换为运行web服务器服务的用户名。还将“/path/to/site”替换为指向WP站点根目录的实际路径

chown -R www-data:www-data /path/to/site
重要信息请务必在事后将所有权授予普通用户(而不是web服务用户)以恢复此功能,否则它将根本不安全。另外,将web服务用户保留为wp content/uploads文件夹的所有者,以便用户可以上载媒体

chown -R user:group /path/to/site
chown -R www-data:www-data /path/to/site/wp-content/uploads

我在更新本地信息时也遇到了类似的问题。我最终使用了wp cli:


如果您有ssh访问权限,那么值得签出。我运行了一个
sudowp核心更新--allow root
(不建议用于实时站点),并且它的更新没有权限错误

对我来说,所有建议的解决方案都不起作用,因为我使用的是Plesk cpanel,对我起作用的是手动更新WordPress,步骤如下:

1-首先创建网站的完整备份。这是非常重要的,以防你犯了错误

2-从WordPress.org下载最新的WordPress ZIP文件

3-将文件解压缩到本地计算机上的目录或网站上的单独目录中

4-停用WordPress站点上的所有插件

5-转到您的网站根目录并删除“wp includes”和“wp admin”目录。您可以通过sFTP或SSH来实现这一点

6-从新版本的WordPress上传(或复制)新的wp includes和wp admin目录,并将其解压缩到网站根目录,以替换刚刚删除的目录

7-不要删除您的wp内容目录或该目录中的任何文件。将新版本WordPress中的wp内容目录中的文件复制到现有的wp内容目录中。您将覆盖具有相同名称的任何现有文件。wp内容中的所有其他文件将保持不变

8-从新版本WordPress的根目录(“/”)复制所有文件,并将其解压缩到网站根目录(或WordPress安装的根目录)中。您将覆盖任何现有文件,新文件也将被复制到其他文件。您的wp-config.php文件不会受到影响,因为WordPress从未随wp-config.php文件一起分发

9-检查随WordPress分发的wp-config-sample.php,查看是否添加了任何您可能想要使用或修改的新设置

10-如果在自动更新失败后手动升级,请从WordPress根目录中删除.maintenance文件。这将从您的站点中删除“更新失败”消息

11-访问您的WordPress管理员主页/wp admin/可能会要求您再次登录。您可能还需要升级数据库,如果需要,系统将提示您进行升级。如果无法登录,请尝试清除cookies

12-重新启用您先前禁用的插件

13-清除浏览器缓存以确保可以看到所有更改。如果您使用的是像“varnish”这样的前端缓存,您还应该清除它,以确保您的客户能够看到您站点上的最新更改


14-您的升级现在已经完成,您应该正在运行最新版本的WordPress。

运行了这些命令,现在工作正常(仪表板和ftp)

sudo usermod-aG www-data$USER

sudo chown-R www-data:www-data/var/www


sudo chmod-R 774/var/www

如果您的Wordpress安装了Bitnami,请使用以下命令。(bitnami:守护进程)

目标是WordPress应用程序文件夹:

sudo chown -R bitnami:daemon TARGET
sudo find TARGET -type d -exec chmod 775 {} \;
sudo find TARGET -type f -exec chmod 664 {} \;
sudo chmod 640 TARGET/wp-config.php

参考:

给未来读者的注释。即使您的文件/目录所有权和权限正确,此问题仍然可能是由于SELinux拒绝对WordPress目录中的文件进行写访问而导致的

要调试:

getenforce
将告诉您SELinux是否正在运行

如果是,请使用检查WordPress文件上的SELinux上下文

ls -Z /path/to/wordpress
如果文件的“类型”上下文(列表的第三段)为

这意味着SELinux将它们视为只读配置文件,并且不允许您的web服务器写入它们

您可以使用更新上下文

chcon -R -t httpd_sys_rw_content_t /path/to/wordpress

这会将它们设置为允许web服务器向其写入的上下文。注意,这会将允许或不允许任何操作的责任委托给文件系统权限。因此,例如,如上所述设置上下文将不允许nginx写入root拥有的文件。它只允许在文件权限允许的情况下向他们写入内容。

不,我还没有。我真的很希望将来能够修复自动更新以便于使用。您是否尝试过通过SSH将WordPress Web文件更改为644,并将所有目录更改为755?我使用SSH访问通道,通过
 httpd_sys_content_t
chcon -R -t httpd_sys_rw_content_t /path/to/wordpress