通过管理界面将 Wordpress 升级到 3.2 时出现权限问题

通过管理界面将 Wordpress 升级到 3.2 时出现权限问题

我正在使用 10.04 服务器,并尝试通过管理界面升级 Wordpress。我有一个正在运行的 vsftpd 服务器,它正在接受本地连接。对于我的 FTP 凭据,我提供了以下内容:

  • 主机名:127.0.0.1:21
  • 用户名和密码:提供的用户对 /var/www 目录结构具有写访问权限。
  • 使用普通的 FTP,不安全。

当我提交升级时,一段时间后(1-2 分钟)返回以下消息:

Downloading update from http://wordpress.org/wordpress-3.2.zip…

Unpacking the update…

Could not create directory.: /var/www/wordpress/wp-content/upgrade/wordpress-3.tmp

Installation Failed

我猜想这是权限问题,但我还没能弄清楚。即使设置目录 chmod 777 也不起作用。有什么想法吗?谢谢!

编辑:使用 ftp 127.0.0.1 进行测试得到以下结果:

$ ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.2.2)
Name (127.0.0.1:wpuser): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir /var/www/wordpress/wp-content/upgrade/test/
550 Permission denied.

也许我的 vsftpd 设置有问题?这是 vsftpd.conf 文件:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

编辑第2部分:

由于我的声誉不够,我暂时无法提交答案。不过,我是这样解决的:

我终于解决了这个问题,尽管这可能不是最好的解决方案。请记住,FTP 服务无法访问外部互联网。

因此,Wordpress 尝试使用 FTP 创建升级所需的目录和文件。它在上传插件或主题时也会这样做。因为我也无法通过 FTP 创建目录,所以我决定在 vsftpd 配置中尝试以下操作:

anon_upload_enable=YES
anon_mkdir_write_enable=YES

我重启了服务器,一切正常。现在,我假设这可能是某种安全问题,但匿名帐户已被禁用(anonymous_enable=NO)。

此外,顺便提一下,作为对有关目录权限的其他建议的回应,以下是我在服务器上尝试的权限方式。

  • 所有 wordpress 目录 775
  • 所有 wordpress 文件 664
  • 所有者:我的用户,组:用户
  • www-data 用户添加到用户组(只是测试,显然不起作用)

所以我思考www-data 具有对必要目录的写权限,但它仍然无法工作。这就是我开始探索 FTP 服务器问题的原因。

我欢迎对此的任何评论。

答案1

这个文件可以帮助您了解如何为您的文件/文件夹应用权限以便 Wordpress 顺利工作。

根据我的个人经验,为 WordPress 文件夹提供 755 权限即可解决问题,但无论 WordPress 怎么说,某些文件夹都需要具有 777,如果这些文件夹没有 777 权限,则多个插件和/或更新(甚至是 WP 核心)都将无法工作。

引用我在这个答案顶部提到的文档:

  1. 所有文件都应归实际用户的帐户所有,而不是用于 httpd 进程的用户帐户。
  2. 组所有权无关紧要,除非对 Web 服务器进程权限检查有特定的组要求。通常情况并非如此。
  3. 所有目录都应为 755 或 750。
  4. 所有文件都应为 644 或 640。例外:wp-config.php 应为 600,以防止服务器上的其他用户读取它。
  5. 任何目录都不应被赋予 777,即使是上传目录也不行。由于 php 进程以文件所有者的身份运行,因此它获得了所有者的权限,甚至可以写入 755 目录。

这个答案:处理文件权限的一般规则将有助于更好地理解基于 Ubuntu 的系统中的权限。如果是本地服务器,则无需通过 FTP 客户端访问即可执行任务,而是使用终端。

如果您需要更多信息,请随时发表评论。可以通过以下方式访问我的 WP 博客http://geppettvs.x10.mx/blog过去我在远程和本地服务器上多次遇到过这个问题。

我的答案的词汇表:

  1. 本地服务器应该被视为一台可以插入键盘或鼠标以便直接与其操作系统交互的计算机。
  2. 远程服务器是一台不在我面前的计算机,我无法将键盘或鼠标插入其中以便使用计算机的操作系统。

答案2

chown -R ftpuser.ftpuser /var/www/yourwebsite/wp-content/upgrade/

chmod 755 /var/www/yourwebsite/wp-content/upgrade/

答案3

您是否尝试更改目录的所有者和组。通常/var/www应具有www-data所有者和组。将所有者和组更改/var/www/wordpress...为您正在使用的 ftp 用户。命令如下所示,

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

也可以尝试使用 ip 地址127.0.0.1

答案4

你查看过可用磁盘空间吗?这是我在尝试更新某些插件时遇到的问题。我增加了配额,问题就解决了。

相关内容