我正在尝试使用Media > Add New
- 选项在wordpress上传文件,但是当我点击上传时,我收到以下错误:
无法创建目录wp-content / uploads / 2012/11。是它的父母 目录可由服务器写入吗?
我安装了Wordpress 4.3.1。
谢谢
编辑: 我在共享服务器上:host = i686-redhat-linux-gnu和Apache。我将权限更改为755和777的wp-content / uploads,但是我收到以下错误:
由于无法创建错误,“my_file.jpg”无法上传 目录wp-content / uploads / 2012/11。它的父目录是否可写 由服务器?
有什么想法吗?
答案 0 :(得分:5)
您需要为/ uploads /设置文件夹权限,也可能为/ wp-content /设置文件夹权限。
通常,两个文件夹都应该是755.您可能必须暂时引发/上传/到777并上传图像(这也会强制服务器将文件夹权限和用户更改为正确设置),但立即将其更改回755。
使用FTP客户端设置权限最简单。请参阅Filezilla和FTP Clients « WordPress Codex。
请参阅Changing File Permissions « WordPress Codex了解正确的Wordpress权限设置:
来自codex.wordpress:通常,所有文件都应归您的网络服务器上的用户(ftp)帐户所有,并且该帐户应该可以写入。共享 主机,文件永远不应该由Web服务器进程本身拥有 (有时候这是www,或apache,或者没有用户)。
任何需要WordPress写入权限的文件都应该拥有或 由WordPress使用的用户帐户所拥有的组(可能是 与服务器帐户不同)。例如,您可能有一个用户 允许您来回FTP服务器的帐户,但是 您的服务器本身可以使用单独的用户运行 用户组,例如dhapache或nobody。如果WordPress正在运行 FTP帐户,该帐户需要具有写访问权限,即是 文件的所有者,或属于具有写访问权限的组。在里面 后一种情况,这意味着权限设置更为允许 比默认值(例如,文件夹为775而不是755,以及664 而不是644)。
答案 1 :(得分: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 :(得分:1)
/wp-content/uploads
目录需要您的网络服务器可写。假设您在Linux上使用Apache,并且它以用户apache
运行(更改为您的相应用户),一个快速解决方法是从您的Web根目录运行以下命令。
chown -R apache.apache wp-content/uploads
chmod -R 755 wp-content/uploads
答案 3 :(得分:1)
上周我遇到了同样的问题。在尝试了所有提议的解决方案但没有成功之后,我发现我们在服务器上启用了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
答案 4 :(得分:1)
我遇到了同样的问题,我找到了更好的解决方案:
SELECT * FROM wp_options WHERE option_name LIKE '%upload_path%'
答案 5 :(得分:0)
这应该解决它。
sudo chown -R www-data:www-data wp-content/uploads
如果没有必要,请不要将权限更改为755。 如果它仍然无法运行,请尝试:
chmod -R 755 wp-content/uploads
答案 6 :(得分:0)
sudo chown -R apache uploads
sudo chmod -R 755 uploads
假设您在wp-content
答案 7 :(得分:0)
对于那些偶然发现selinux权限问题的人来说,以下是我修复它们的步骤。我们需要允许以下selinux布尔变量允许使用FTP从wordpress管理控制台安装wordpress插件。它们是httpd_can_network_connect和ftpd_full_access。
可以激活它们setsebool ftpd_full_access
setsebool httpd_can_network_connect
对于用于上传的ftp用户,也应该允许写入wp-content文件夹。