当我尝试通过管理员自动将WordPress更新为4.7.2时,我一直收到此错误消息:
更新WordPress 从https://downloads.wordpress.org/release/wordpress-4.7.2-new-bundled.zip ...
下载更新解压缩更新...
无法安装更新,因为我们无法复制某些文件。这通常是由于文件权限不一致:wp-admin / includes / update-core.php
安装失败
我尝试在服务器上运行this article中的以下命令,但仍然收到错误消息:
sudo find . -type f -exec chmod 664 {} +
sudo find . -type d -exec chmod 775 {} +
sudo chmod 660 wp-config.php
我做错了什么?自动更新不应该使用正确的文件/文件夹权限吗?
答案 0 :(得分:9)
您是否尝试通过FTP(Filezilla)等程序手动上传更新的WordPress文件?你还遇到同样的问题吗?
<强>更新强>
运行以下
将所有文件的权限重置为664:
find /path/to/site/ -type f -exec chmod 664 {} \;
将目录的权限重置为775:
find /path/to/site/ -type d -exec chmod 775 {} \;
将组重置为wordpress组(或任何对你有意义的组)
chgrp -R wordpress /path/to/site/
答案 1 :(得分:6)
对我来说,下面的命令有效。在下面的示例中,替换&#34; www-data&#34;以及运行Web服务器服务的用户名。同时替换&#34; / path / to / site&#34;使用WP站点根目录的实际路径。
chown -R www-data:www-data /path/to/site
重要请务必通过将所有权授予普通用户(不是网络服务用户)来恢复此操作,否则根本不会安全。此外,将Web服务用户保留为wp-content / uploads文件夹的所有者,以便用户可以上传媒体。
chown -R user:group /path/to/site
chown -R www-data:www-data /path/to/site/wp-content/uploads
答案 2 :(得分:1)
我在本地更新时遇到了类似的问题。我最终使用了wp-cli:http://wp-cli.org/
如果您有ssh访问权限,则值得一试。我运行了sudo wp core update --allow-root
(不推荐用于实际网站)并更新了没有权限错误。
答案 3 :(得分:1)
运行这些命令,现在可以正常工作了(仪表板和ftp)。
sudo usermod -aG www-data $USER
sudo chown -R www-data:www-data /var/www
sudo chmod -R 774 /var/www
答案 4 :(得分:0)
对我来说,所有建议的解决方案都不起作用,因为我使用的是Plesk cpanel,对我有用的是按照提到的here步骤手动更新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-content目录或该目录中的任何文件。将文件从新版本的WordPress中的wp-content目录复制到现有的wp-content目录。您将覆盖具有相同名称的任何现有文件。 wp-content中的所有其他文件都将保留在原位。
8-将解压缩到您网站根目录(或WordPress安装的根目录)的新版WordPress的根('/')目录中的所有文件复制。您将覆盖任何现有文件,并且还将复制新文件。您的wp-config.php文件不会受到影响,因为WordPress永远不会随wp-config.php文件一起分发。
9-检查随WordPress一起发布的wp-config-sample.php,看看是否添加了您可能想要使用或修改的新设置。
10-如果在自动更新失败后手动升级,请从WordPress根目录中删除.maintenance文件。这将从您的网站中删除“失败的更新”消息。
11-访问您的主要WordPress管理页面/ wp-admin /,可能会要求您再次登录。您可能还需要升级数据库,如果需要,将会提示您。如果您无法登录,请尝试清除Cookie。
12-重新启用您之前禁用的插件。
13-清除浏览器缓存以确保您可以看到所有更改。如果您使用的是“清漆”等前端缓存,您还应该清楚这一点,以确保您的客户可以看到您网站上的最新更改。
14-您的升级现已完成,您应该运行最新版本的WordPress。
答案 5 :(得分:0)
如果您的Wordpress随Bitnami一起安装,请使用以下命令。 (bitnami:daemon)
TARGET是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
ref:https://docs.bitnami.com/bch/apps/wordpress-pro/administration/understand-file-permissions/
答案 6 :(得分:0)
给任何未来读者的注意事项。即使您的文件/目录所有权和权限是正确的,这个问题仍然可能是由于 SELinux 拒绝对您的 WordPress 目录中的文件进行写访问而引起的。
调试:
getenforce
会告诉你 SELinux 是否正在运行。
如果是,请检查您的 WordPress 文件上的 SELinux 上下文
ls -Z /path/to/wordpress
如果您的文件具有“类型”上下文(列表的第三段)
httpd_sys_content_t
这意味着 SELinux 将它们视为只读配置文件,并且不允许您的 Web 服务器写入它们。
您可以使用
更新上下文chcon -R -t httpd_sys_rw_content_t /path/to/wordpress
这会将它们设置为允许您的 Web 服务器写入它们的上下文。请注意,这会将责任委托给文件系统权限以允许或不允许任何操作。因此,例如,如上所述设置上下文将不允许 nginx 写入 root 拥有的文件。如果文件权限允许,它只是允许写入它们的可能性。