无法将媒体上传至 WordPress

无法将媒体上传至 WordPress

当我将文件上传到我的 WordPress 网站时,出现以下错误:

Unable to create directory wp-content/uploads/2017/03. Is its parent directory writable by the server?

我在 Linux 机器上的 Apache 2.2.2 服务器上运行 WordPress。wp-content 文件夹具有 775 个权限,我/uploads在其中创建了一个也具有 775 个权限的文件夹。这两个文件夹以及整个 WordPress 文件目录的用户和组都是www-data

我正在运行 WordPress 4.7.3。

如果这值得注意的话,在安装时,我的upload_path变量没有设置。此后,我将其设置为wp-content/uploads并手动创建了uploads具有 775 权限的目录。

安装过程是使用安装wget wordpress.org/latest.tar.gz并从那里安装。

这可能与此有关吗?

在网上找不到任何涉及更改权限或将 php 设置为不安全模式的解决方案。

干杯!

编辑:

其他不属于 www-data 且不由 www-data 分组的文件和目录是否与此有关?ls -l会导致这样的情况:

-rw-r--r-- 1 nobody nogroup 418 Sep 24 2013 index.php -rw-r--r-- 1 nobody nogroup 19935 Jan 2 12:51 license.txt -rw-r--r-- 1 nobody nogroup 7433 Jan 11 11:46 readme.html -rw-r--r-- 1 nobody nogroup 5447 Sep 27 16:36 wp-activate.php drwxr-xr-x 9 nobody nogroup 4096 Mar 6 10:00 wp-admin -rw-r--r-- 1 nobody nogroup 364 Dec 19 2015 wp-blog-header.php -rw-r--r-- 1 nobody nogroup 1627 Aug 29 2016 wp-comments-post.php -rw-r--r-- 1 root root 3045 Mar 22 21:47 wp-config.php -rw-r--r-- 1 nobody nogroup 2853 Dec 16 2015 wp-config-sample.php drwxrwxr-x 5 www-data www-data 4096 Mar 22 23:09 wp-content -rw-r--r-- 1 nobody nogroup 3286 May 24 2015 wp-cron.php drwxr-xr-x 18 nobody nogroup 12288 Mar 6 10:00 wp-includes -rw-r--r-- 1 nobody nogroup 2422 Nov 20 20:46 wp-links-opml.php -rw-r--r-- 1 nobody nogroup 3301 Oct 24 22:15 wp-load.php -rw-r--r-- 1 nobody nogroup 33939 Nov 20 20:46 wp-login.php -rw-r--r-- 1 nobody nogroup 8048 Jan 10 23:15 wp-mail.php -rw-r--r-- 1 nobody nogroup 16250 Nov 28 23:39 wp-settings.php -rw-r--r-- 1 nobody nogroup 29896 Oct 18 23:47 wp-signup.php -rw-r--r-- 1 nobody nogroup 4513 Oct 14 14:39 wp-trackback.php -rw-r--r-- 1 nobody nogroup 3065 Aug 31 2016 xmlrpc.php

答案1

真正的问题很可能是权限,并且可能您没有根据需要完全更改它们,或者 Web 服务器以与您预期不同的用户身份运行它。

我将像这样使用 sudo 进行测试(将 /var/www 替换为相关路径):

sudo -u www-data mkdir -p /var/www/wp-content/uploads/2017/03

如果可行,我会检查“dmesg”中是否存在 AppArmor 故障,尽管我不认为 AppArmor 默认会从内存中阻止 apache2/php。

如果这不起作用,我会将其用作一个简单的测试来探索和修复权限以使其正常工作。您可以先检查所有目录级别的权限

ls -lad /var/www /var/www/wp-content /var/www/wp-content/uploads /var/www/wp-content/uploads/2017 /var/www/wp-content/uploads/2017/03

答案2

嗯,我确实感觉自己像一个邓达-米夫林。

使用 检查了正在运行的进程ps aux | egrep '(apache|httpd)',发现所有进程都在 下运行http-web。我确认ls -l我的所有 WordPress 文件夹中的权限都属于某个www-data用户和组。

我使用 (里面chown -R http-web:http-web /var/www/html有一个额外的文件夹)改变了这一切。htmlwww

资料来源:

https://stackoverflow.com/questions/19020186/the-uploaded-file-could-not-be-moved-to-wp-content-uploads

使用 chown 设置文件夹的所有子文件夹和文件的所有权?

相关内容