WordPress插件安装:无法创建目录

82

我正在CentOS 6上使用WordPress。

我尝试安装插件。但是出现了以下错误:

正在安装插件:bbPress 2.5.9 正在从https://downloads.wordpress.org/plugin/bbpress.2.5.9.zip下载安装包...

正在解压缩包...

无法创建目录。

我该如何解决这个问题?

P/S: 我执行了以下命令:

sudo -u root touch /var/www/html/wordpress/wp-content/plugins/test.txt

它能够工作。但我仍然遇到了那个错误。


test.txt 不是一个目录,可能我现在写的很蠢,但请检查是否可以在此处创建一个目录。(只是为了确保)。 - MindRoller
21个回答

132
你只需要更改你的WordPress目录的访问权限:
chown -R www-data:www-data your-wordpress-directory

最佳实践:
sudo find /var/www/html/wordpress/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpres/ -type f -exec chmod 644 {} \;

或者

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

WordPress目录的路径是.

18
你的WordPress目录 = "wp-content" - mallik1055
3
对于我的情况来说,因为我使用的是 Mac,所以命令应该是 chown -R _www:_www wp-content,实际上应该是 sudo chown -R _www:_www wp-content - Jason Swett
"your-wordpress-directory" 这个词并没有告诉我需要哪个目录来安装插件。更改 WordPress 安装中的每个目录的所有权是不安全的、过度的,并且可能会破坏其他东西。 - felwithe
当WordPress目录更改时,插件所需的目录也会更改。 your-wordpress-directory 表示您在服务器上放置WordPress的位置。 - kevr
这是一种不良的实践,应该避免。 - Leandro Bardelli

88
你可以使用以下命令来修复此问题。你应该首先进入WordPress的根文件夹。
sudo chown -R www-data:www-data wp-content/plugins/
sudo chmod 775 wp-content

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

6
这应该是答案,因为它告诉我们哪些目录需要修复,以及如何修复它们。 - felwithe
1
它对我起作用了。如果你在Ubuntu上清除了apache2和wordpress,那么你必须重新应用这些权限。 - Kemal Atik
1
这个答案对我有用。 - gsm
1
谢谢!对我有用。我在 Windows 10 WSL2 中使用 WordPress Docker 容器。 - sybozz
1
对我来说有效。我投赞成票。 - Naren Verma
今天我尝试了相同的设置,但无法访问我的网站。出现连接超时错误。 - Naren Verma

21

正在运行您的Web服务器的用户没有权限写入Wordpress打算创建插件目录的目录。您应将相关目录的所有权修改为运行Wordpress的用户。很可能不是root用户。

简而言之,这是一个权限问题。您的touch命令有效是因为您正在使用root用户,而root具有全局权限可以在任何地方编写。


7
显然,但这并没有告诉我们需要修复哪个目录。 - felwithe
2
@felwithe 对于提问者来说并不明显,显然。 - kevr
1
无论你认为这很明显还是不明显(即使错误信息字面上说“无法创建目录”),它都不能回答问题。 - felwithe
好的,我更多地是试图解释问题所在,以便他能够理解如何在将来修复这样的问题。 - kevr

17

一个快速的解决方法是改变以下文件的权限:

  • /var/www/html/wordpress/wp-content
  • /var/www/html/wordpress/wp-content/plugins

将其更改为 775

安装完成后,别忘了将其改回默认权限.. :D


没有 root 权限的用户,这是一个很好的快速解决方案。 - Robin Métral
在我的情况下,它更改了 wp-content 的权限,但不允许更改 wp-content 中的插件的权限。 - Heemanshu Bhalla

11
如果您使用apt安装了WordPress,则配置文件将分成多个目录。在这种情况下,您需要运行以下命令:

如果您使用apt安装了WordPress,则配置文件将分成多个目录。在这种情况下,您需要运行:

sudo chown -R -h www-data:www-data /var/lib/wordpress/wp-content/
sudo chown -R -h www-data:www-data /usr/share/wordpress/wp-content/

-h选项也会更改符号链接的权限,否则用户www-data将不能删除它们。


我该如何在CentOS服务器上更改权限? - Mr Coder

11

我必须将/plugins/upgrade的所有权交给服务器,不得涉及其他内容。

$ cd /var/www/wordpress/wp-content
$ sudo chown www-data:www-data /plugings
$ sudo chown www-data:www-data /upgrade
在Ubuntu 18.04上运行Apache服务器。也许以后需要更改更多的目录。无论如何,我计划在编辑完成后恢复权限,就像这个答案中建议的那样。

如果其他答案不能解决问题,尝试这个!/ 升级目录是可疑的! - shintaroid
确实是不好的做法。 - Leandro Bardelli

8
为了快速解决本地或生产环境中插件和主题的权限问题,只需运行以下命令:

sudo chmod 757 wp-content/themes
sudo chmod 757 wp-content/plugins

如果在生产环境上进行权限管理,您可以运行

sudo chown -R www-data:www-data wp-content/themes
sudo chown -R www-data:www-data wp-content/plugins

7

如果您是Mac用户,使用XAMPP

进入htdocs文件夹,在文件夹上打开终端,如屏幕截图所示

enter image description here

然后在终端上键入以下命令

**sudo chmod -R 777 <your wordpress folder Name>/**

例如,使用命令 "sudo chmod -R 777 wordpress/"。

这非常危险。 - Krishna Karki

6

CentOS7或Ubuntu16


1.

WordPress使用ftp来安装主题插件,因此必须配置ftpd以创建目录。

vim /etc/pure-ftpd.confg

如果是 ,那么应该是

# Are anonymous users allowed to create new directories?
AnonymousCanCreateDirs       yes

最后
sudo systemctl restart pure-ftpd

2.

可能是父目录的所有权问题。如果使用的是Apache Web Server,找到Web服务器用户名和组名。

apachectl -S

它会打印

...
...
User: name="apache" id=997
Group: name="apache" id=1000

在Ubuntu上,它是

用户:名称="www-data" id=33 not_used
组:名称="www-data" id=33 not_used

然后

sudo chown -R apache:apache directory-name

3.

有时是由于目录权限引起的问题。 因此,请尝试:

sudo chmod -R 755 directory-name

在某些情况下,755 不起作用(虽然它应该可以,但我不知道为什么),因此请尝试使用:

sudo chmod -R 777 directory-name

4.

可能是因为PHP的安全模式。 因此,请在您的域名根目录中将其关闭off

vim php.ini

然后添加

safe_mode = Off

注意:
为了不每次安装主题都输入FTP用户名和密码,我们可以配置WordPress直接使用它,方法是添加:

define('FS_METHOD','direct');

将内容添加到wp-config.php文件中。

4

您需要更改目录的权限

  1. 首先更改用户HTML文件夹(将yourcomputerusername替换为您的计算机用户名)

    sudo chown yourcomputerusername:yourcomputerusername /var/www/html

  2. 接下来更改用户权限

    cd /var/www/html

    sudo chmod -R goa=rwx wordpress

    或者

    sudo chmod -R 777 wordpress/wp-content


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