上传文件wordpress

问题描述 投票:0回答:9

我正在尝试使用

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

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

我安装了Wordpress 4.3.1。

谢谢你

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

“my_file.jpg”由于错误无法创建而无法上传 目录 wp-content/uploads/2012/11。其父目录是否可写 通过服务器?

有什么想法吗?

wordpress permissions file-permissions
9个回答
5
投票

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

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

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

并参阅更改文件权限 « WordPress Codex 以了解正确的 WordPress 权限设置:

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

任何需要 WordPress 写入访问权限的文件都应该被拥有或 由 WordPress 使用的用户帐户拥有的组(可能是 与服务器帐户不同)。例如,您可能有一个用户 允许您在服务器上来回传输文件的帐户,但是 您的服务器本身可能使用单独的用户在单独的 用户组,例如 dhapache 或 nobody。如果 WordPress 运行为 FTP 帐户,该帐户需要具有写入权限,即 文件的所有者,或属于具有写访问权限的组。在里面 后一种情况,这意味着权限设置得更宽松 比默认值(例如,文件夹为 775 而不是 755,文件夹为 664) 而不是 644)。


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,因为这根本不安全


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


1
投票

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

chown -R apache.apache wp-content/uploads
chmod -R 755 wp-content/uploads

1
投票

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

  1. 转到 cpanel > phpmyadmin
  2. 选择数据库
  3. 打开 wp_options 表
  4. 进行sql查询
    SELECT * FROM wp_options WHERE option_name LIKE '%upload_path%'
  5. 更改路径

1
投票

这应该可以解决它。

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

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

    chmod -R 755 wp-content/uploads

0
投票

这对我来说很有效,在头痛了好几个星期之后

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

假设您在

wp-content


0
投票

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

setsebool ftpd_full_access 开启

setsebool httpd_can_network_connect 开启

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


0
投票

CENTOS 7
我在下面进行测试并工作:

我设置了

sudo setenforce 0
并开始上传和创建目录。

© www.soinside.com 2019 - 2024. All rights reserved.