2

我正在尝试使用Media > Add New-- 选项在 wordpress 中上传文件,但是当我单击上传时,出现以下错误:

无法创建目录 wp-content/uploads/2012/11。它的父目录是否可以被服务器写入?

我安装了 Wordpress 4.3.1。

谢谢

编辑:我在一个共享服务器上:host=i686-redhat-linux-gnu 和 Apache。我将 wp-content/uploads 的权限更改为 755 和 777,但出现以下错误:

由于错误无法创建目录 wp-content/uploads/2012/11,“my_file.jpg”未能上传。它的父目录是否可以被服务器写入?

有任何想法吗?

4

8 回答 8

5

您需要为 /uploads/ 设置文件夹权限,也可能为 /wp-content/ 设置文件夹权限。

通常,两个文件夹都应该是 755。您可能需要暂时将 /uploads/ 提高到 777 并上传图像(这也会强制服务器将文件夹权限和用户更改为正确的设置),但将其更改回 755 对离开。

使用 FTP 客户端设置权限是最简单的。请参阅FilezillaFTP 客户端 « WordPress Codex

并查看更改文件权限 « WordPress Codex了解正确的 Wordpress 权限设置:

来自 codex.wordpress:通常,所有文件都应归您的 Web 服务器上的用户 (ftp) 帐户所有,并且应可由该帐户写入。在共享主机上,文件永远不应该归网络服务器进程本身所有(有时是 www、apache 或nobody 用户)。

任何需要 WordPress 写入权限的文件都应该由 WordPress 使用的用户帐户(可能与服务器帐户不同)拥有或归组所有。例如,您可能有一个用户帐户,可以让您通过 FTP 文件来回传送到您的服务器,但您的服务器本身可能使用单独的用户在单独的用户组中运行,例如 dhapache 或nobody。如果 WordPress 作为 FTP 帐户运行,则该帐户需要具有写入权限,即是文件的所有者,或者属于具有写入权限的组。在后一种情况下,这意味着权限设置比默认设置更宽松(例如,文件夹设置为 775 而不是 755,而 664 而不是 644)。

于 2012-11-06T20:18:58.703 回答
3

ssh 进入并导航到该wp-content文件夹​​并输入以下两行:

sudo chown -R www-data uploads/
sudo chmod -R 755 uploads/

或者您可以使用静态和完整路径:

sudo chown -R www-data /var/www/wp-content/uploads/
sudo chmod -R 755 /var/www/wp-content/uploads/

不要将其更改为权限 777,因为这根本不安全

于 2014-03-12T06:11:24.777 回答
2

上周我遇到了同样的问题。在尝试了所有提出的解决方案都没有成功后,我突然想到我们在服务器上启用了 SElinux。在我的情况下,也许对于许多其他人来说,SElinux 负责错误消息:

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

我的解决方案基于此处提出的解决方案:http ://doc-ok.org/?tag=selinux ,它可能更适合其他人的需求。

就我而言,我的 wordpress 目录位于服务器上的主文件夹中,我可以通过 ssh 访问该文件夹。否则,您将不得不询问您的管理员。

无论如何,这是我的解决方案。

chgrp -R apache wordpress #change wordpress with your base directory for wp..
#alternatively, chown the whole directory to apache
chmod -R 774 wordpress/wp-content #if chown by apache, the permissions can be more restrictive

在我的情况下,不仅文件夹所有权/组所有权必须更改为 apache。wp-content 目录的 SElinux 标签也必须更改为 httpd_sys_rw_content_t 或 httpd_sys_content_t:

chcon -Rv --type=httpd_sys_content_t wordpress/wp-content

这对我有用。

有关 SElinux 的更多信息可以在例如以下位置找到:

wiki.centos.org/HowTos/SELinux

fedoraproject.org/wiki/SELinux

于 2013-04-23T09:21:05.557 回答
1

/wp-content/uploads目录需要可由您的网络服务器写入。假设您在 Linux 上使用 Apache,并且它以用户身份运行apache(更改为适当的用户),一个快速解决方法是从您的 Web 根目录运行以下命令。

chown -R apache.apache wp-content/uploads
chmod -R 755 wp-content/uploads
于 2012-11-06T20:08:52.887 回答
1

我遇到了同样的问题,我找到了更好的解决方案:

  1. 转到 cpanel > phpmyadmin
  2. 选择数据库
  3. 打开 wp_options 表
  4. 进行sql查询SELECT * FROM wp_options WHERE option_name LIKE '%upload_path%'
  5. 改变路径
于 2015-04-24T17:30:02.117 回答
1

这应该解决它。

    sudo chown -R www-data:www-data wp-content/uploads

如果没有必要,不要将权限更改为 755。如果它仍然不起作用,请尝试:

    chmod -R 755 wp-content/uploads
于 2015-10-28T09:58:27.763 回答
0

这对我有用,经过数周的头痛

sudo chown -R apache uploads
sudo chmod -R 755 uploads

假设你在wp-content

于 2016-10-08T05:32:11.220 回答
0

对于那些偶然发现 selinux 权限问题的人,这里是我修复它们的步骤。我们需要允许以下 selinux 布尔变量以允许使用 FTP 从 wordpress 管理控制台安装 wordpress 插件。它们是 httpd_can_network_connect 和 ftpd_full_access。它们可以通过以下方式激活

setsebool ftpd_full_access on

setsebool httpd_can_network_connect on

用于上传的 ftp 用户也应该允许写入 wp-content 文件夹。

于 2017-11-02T14:25:10.637 回答