上传文件wordpress

时间:2012-11-06 19:58:33

标签: wordpress permissions file-permissions

我正在尝试使用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。它的父目录是否可写   由服务器?

有什么想法吗?

8 个答案:

答案 0 :(得分:5)

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

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

使用FTP客户端设置权限最简单。请参阅FilezillaFTP 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)

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

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

答案 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文件夹。