我在 Amazon EC2 实例上安装了 Wordpress,但在启用 WP 安装主题、插件等时遇到了问题。例如,主题安装失败,原因如下:
Installation failed: Could not copy file. harmonic/404.php
我使用vsftpd
并创建了一个名为 的用户wordpress
。
这看起来像是一个文件权限问题,但是我根据一些在线说明设置了权限,并且无法发现问题:
[ec2-user@ec2 wordpress]$ ls -lah
total 196K
drwxr-sr-x 5 wordpress www 4.0K Aug 29 14:29 .
drwxrwsr-x 3 root www 4.0K Aug 29 14:45 ..
-rw-r--r-- 1 wordpress www 418 Sep 25 2013 index.php
-rw-r--r-- 1 wordpress www 20K Mar 5 20:14 license.txt
-rw-r--r-- 1 wordpress www 7.2K Jul 19 17:34 readme.html
-rw-r--r-- 1 wordpress www 5.4K May 24 21:02 wp-activate.php
drwxr-sr-x 9 wordpress www 4.0K Aug 16 18:23 wp-admin
-rw-r--r-- 1 wordpress www 364 Dec 19 2015 wp-blog-header.php
-rw-r--r-- 1 wordpress www 1.5K May 23 16:44 wp-comments-post.php
-rw-r--r-- 1 wordpress www 3.0K Aug 29 09:42 wp-config.php
-rw-r--r-- 1 wordpress www 2.8K Dec 16 2015 wp-config-sample.php
drwxr-sr-x 5 wordpress www 4.0K Aug 29 14:29 wp-content
-rw-r--r-- 1 wordpress www 3.3K May 24 2015 wp-cron.php
drwxr-sr-x 17 wordpress www 12K Aug 16 18:23 wp-includes
-rw-r--r-- 1 wordpress www 2.4K May 23 16:44 wp-links-opml.php
-rw-r--r-- 1 wordpress www 3.3K Apr 14 17:53 wp-load.php
-rw-r--r-- 1 wordpress www 34K Jun 14 21:51 wp-login.php
-rw-r--r-- 1 wordpress www 7.7K Jul 13 12:37 wp-mail.php
-rw-r--r-- 1 wordpress www 14K Aug 13 16:02 wp-settings.php
-rw-r--r-- 1 wordpress www 30K May 24 20:44 wp-signup.php
-rw-r--r-- 1 wordpress www 4.0K Nov 30 2014 wp-trackback.php
-rw-r--r-- 1 wordpress www 3.0K Jul 6 12:40 xmlrpc.php
[ec2-user@ip-172-31-27-36 wp-content]$ ls -lah
total 24K
drwxrwsr-x 5 wordpress www 4.0K Aug 29 14:29 .
drwxr-sr-x 5 wordpress www 4.0K Aug 29 14:29 ..
-rw-rw-r-- 1 wordpress www 28 Jan 8 2012 index.php
drwxrwsr-x 5 wordpress www 4.0K Aug 29 14:45 plugins
drwxrwsr-x 5 wordpress www 4.0K Aug 29 14:29 themes
drwxrwxr-x 17 wordpress www 4.0K Aug 29 15:04 upgrade
我将目录的所有权移交/var/www/html/wordpress
给了用户wordpress
——这样正确吗?
为什么 vsftpd 日志中没有包含任何有关失败操作的信息?
答案1
Vsftpd 并不关心 WordPress 是否无法复制文件,这对它来说不算错误。只有在文件传输或通过 SFTP 访问文件时出现问题时才会出现错误,但这里的情况并非如此。问题在于安装过程中,文件已经在服务器上了。
您的两个命令均未显示有问题的实际目录,
harmonic
该目录可能位于您的themes
目录中。问题就出在这里,因此我们需要查看该目录的权限。正如 Christian 提到的,您应该使用 WP_DEBUG 来获取真正的错误,但您不需要费心记录它,只需使用以下命令:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', true );
它应该设置为默认显示,并且这些错误应该显示在您尝试安装主题的页面上,所以请查看那里。
这些文件和目录应归 Apache 用户所有,而不是您的 vsftpd 用户。如果 Apache 正在使用,
www
则应将其更改为。最常见的是使用www-data
,因此我将通过查看正在运行的进程来检查:ps aux | egrep '(apache|httpd)'
/etc/apache2/httpd.conf
或者,如果您运行的是 Ubuntu/Debian,则在 Apache 配置文件中;/etc/httpd/conf/httpd.conf
如果您运行的是 CentOS/RHEL,则在 Apache 配置文件中。您可以在指令中找到它User
。