无法在WordPress的wp-content/uploads中创建目录

44

我无法上传任何图片到媒体部分。

我收到以下错误信息:

"无法创建目录 wp-content/uploads/2015/05。它的父目录是否可写入?"

我尝试过更改权限,对uploads和wp-content目录授予完全访问权限777,但这并没有帮助。

我尝试将/wordpress/wp-content的所有者更改为apache:apache,但也没有帮助。

在option-media.php中将upload_path设置为wp-content/uploads。但仍然无法正常工作。

尝试定义上传路径define(UPLOADS, 'wp-content/uploads');没有帮助。

(服务器:centos)

请有人帮忙!!!

-提前感谢。


将我的上传整理成基于月份和年份的文件夹,位于WordPress管理媒体中,并尝试上传图像。同时勾选/取消勾选相反的选项。 - Ashish Patel
尝试过了,还是不行。现在我收到了错误信息:“无法将上传的文件移动到wp-content/uploads目录。” - Aasim Hussain Khan
23个回答

42

类似 Debian:

chown -R www-data:www-data /var/www/{yourpath}/wp-content/uploads

8
只有当你所用的发行版是类似于Debian/Ubuntu的时候,这个方法才有效。对于RH/CentOS等其他发行版,你需要使用apache:apache账户,因为这些是适当的账户。此外,你不需要在整个/var/www上都这样做。那会是一种不安全的设置。Apache只需要对你想通过网站上传的地方具有写入权限即可。 - Josiah
1
这对我来说很好用。但是路径可能会因安装而异。在我的情况下,它是 /usr/share/wordpress/wp-content/uploads。 - Tushar Saxena
在Ubuntu上运行得非常好! - Professorval

13

在将开发网站迁移到生产网站后,我遇到了类似的问题。后来发现这条信息是误导性的。检查“设置”、“媒体”选项卡,验证当前站点中媒体目录是否准确。如果进行了网站迁移,则列出的目录仍然可能来自旧网站,需要更新。


迁移是我的问题,这个解决了它,谢谢。错误确实很误导人。 - danwild

7

将/wp-content目录的权限更改为0775,然后再试一次。

sudo chmod 0775 {yourpath}/wp-content/uploads

如果失败了,请将权限更改为0777,然后重试。
sudo chmod 0777 {yourpath}/wp-content/uploads

一旦成功,务必将 /wp-content 的权限恢复为开始时的状态。

您可能还需要将尝试解决问题时更改的任何其他文件的权限恢复。

更多选项可以在这里找到:https://www.tipsandtricks-hq.com/how-to-fix-the-unable-to-create-directory-error-in-wordpress-5264

祝好


6
如果在将WordPress迁移到新服务器后出现此错误,请检查以下内容: 设置->媒体->将上传存储在此文件夹中 默认值为wp-content/uploads。 可能您有旧的路径。

6

在更改权限之前,您可能需要先添加一个名为uploads的文件夹。

我的环境是Ubuntu 18.04中的xampp,Wordpress安装失败,无法创建文件夹“uploads”。

进入wp-content目录。

mkdir uploads

在wp-content路径中使用chmod 0777添加相关权限:

sudo chmod 0777 uploads

这对我有用。


5

前往 wp-admin/options.php
upload_path 下替换为精确的 wp-content/uploads(不带引号,不要添加额外的斜杠)
在我尝试了其他所有解决方案数天后,这个方法对我有效。


5

这是一种当你在本地时可以使用的解决方案,但也可以应用于服务器。

有时候,如果你从一个位于服务器上的数据库中获取备份并将其恢复到本地,你会遇到这个问题:“无法创建目录...”,即使你在文件夹上拥有正确的权限。这是因为WordPress指向数据库中upload_path的值。

所以,进入wp_options表。

查找upload_path并检查路径是否正确。

如果不正确。(对于Mac和Unix)进入你的上传文件夹,将它拖到终端中。使用pwd命令将响应复制到数据库中的upload_path

希望这能帮助某些人。


4

我已经尝试了如何在WordPress中修复Unable to create directory错误的所有解决方案,但在我的Centos7上无法正常工作。

然后我在/var/log/audit/audit.log中找到了一些有用的信息。

type = AVC msg = audit(1495357844.782:604):avc:拒绝pid = 2721 comm =“httpd”name =“wp-content”dev =“dm-5”ino = 1074299184scontext = system_u:system_r:httpd_t:s0tcontext = unconfined_u:object_r:etc_runtime_t:s0tclass = dir type = SYSCALL msg = audit(1495357844.782:604): arch = c000003e syscall = 83成功=no exit=-13 a0=7fffba9c62c0 a1=1ff a2=8 a3=5 items=0 ppid=1556 pid=2721 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty =(none)ses = 4294967295 comm =“httpd”exe =“/usr/sbin/httpd”subj = system_u:system_r:httpd_t:s0 key =(null)

检查文件信息:ls -Z /data/web/wordpress

发现SELinux阻止了Httpd访问文件。所以您可以禁用SELinux,或修改文件上下文:chcon -R --type = httpd_sys_rw_content_t /data/web/wordpress。然后它就能正常工作了。


你真是个救命恩人。我已经寻找解决方案一个星期了,这是唯一有效的方法。在看到这篇文章之前,我甚至从未听说过SELinux。故事的寓意是,千万不要使用CentOS来搭建WordPress,最好还是用Debian系统。 - Bigfatty

3

通过更新设置媒体存储上传文件夹的引用,我已经成功解决了这个问题。

进入WordPress管理后台 -> 设置 -> 媒体,使用您的 public_html 主机账户中的内容更新 将上传存储在此文件夹中 选项。

/home/<base_folder_name>/public_html/wp-content/uploads

对我而言,<base_folder_name> 与托管帐户中的不同。

我为我的GoDaddy托管帐户尝试了所有方法,最终找到了解决方案!这只需要在我的根应用程序中进行;任何位于子文件夹中的应用程序都可以正常运行。 - azpc

3
为了解决这个令人烦恼的错误,您需要将旧上传文件夹的路径更改为新的文件夹。按照以下步骤解决问题:

登录到您的WordPress管理面板(wp-admin)。 在左侧菜单中选择“设置”»“媒体”。 在“存储上传文件的文件夹”字段中输入“wp-content/uploads”,然后点击“保存更改”。 现在您已经完成了,可以尝试再次上传文件到媒体库。 注意:请确保“存储上传文件的文件夹”字段中只包含图像描述容器“wp-content/uploads”。

Follow this image for right direction

enter image description here

另一种方法:

如果您无法在媒体设置页面上找到该字段,则可以通过在wp-config.php文件中添加以下代码来解决问题:

使用FTP或本地服务器进入wp-config文件夹,粘贴以下代码:

define( 'UPLOADS', 'wp-content/uploads' ); require_once(ABSPATH . 'wp-settings.php');

这样,“无法创建目录wp-content/uploads。其父目录是否可被服务器写入”错误就会被修复。


2
这个对我有用。按照你的截图操作了一下。谢谢。 - Salman Aziz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接