解决CentOS下WordPress无法更新和安装插件的问题,更新/安装失败无法创建目录

近期和朋友一起入了新的服务器,均使用了CentOS以及LAMP,而他遇到了这样的情况:插件无法安装,提示无法创建目录,而后发现更新也不行。这是怎么回事呢?

简单看了下,实际是因为WordPress没有更新的权限。

具体来说,是因为CentOS有以下特点:

1.文件和目录均有所有者和权限两个属性,在操作用户非所有者时,权限被开放才能进行写入操作。

2.文件和目录的所有者一般为创建者。如使用Wget命令下载的文件,所有者一般是网关程序(比如Apache,Nginx);使用FTP上传的文件,所有者是FTP用户;在SSH链接时直接创建的文件,所有者是登陆用户(可能是root)。

而LAMP来说,在运行WordPress时,安装等操作调用的均是Apache这个用户的权限。而Apache用户是无权修改FTP用户或root的文件的。

因此有两个解决方案可供选择:

1.将WordPress目录的用户改为Apache

首先,查看Apache的用户名到底是什么,在终端运行命令:

1
# vim /etc/passwd

看看有没有叫做apache的用户,如果没有请上网搜索一下你的配置下网关用户名叫什么(如果是LNMP,则看看有没有叫做www的用户,这是Nginx的默认用户名)。

如有,按下ESC,输入:q关闭文件。然后修改目录用户为apache(以目录/var/www/html/为例,实际请修改为你自己的WordPress根目录)。

1
# chown –R apache /var/www/html/

然后继续,将该目录权限改为755:

1
# chmod –R 755 /var/www/html

测试一下,安装插件和模板的功能应该已经恢复。如果更新仍然失败,可以尝试单独给更新程序777权限:

1
# chmod –R 777 /var/www/html/wp-admin/update-core.php

2.将WordPress整个目录设置为777权限

非常不建议这么做,将大大降低网站安全性,777权限意味着组用户和公共用户均可以写入(修改、删除)。

但网站未上线的调试阶段是可以接受的。下面是修改方法:

1
# chmod –R 777 /var/www/html/

如果只是安装插件和模板有问题,可以仅仅修改wp-content的权限为777,这样会比上面好一些:

1
# chmod –R 777 /var/www/html/wp-content
微信打赏支付宝打赏

感谢您的支持!

文章来源:卡米雷特的小站www.kamilet.cn)转载请注明出处。

卡米雷特

视觉控&技术控,不断学习中!


您可能还喜欢...

3 条回复

  1. Leeniux说道:

    感谢,非常有帮助,补充一点,用户和用户组可以一起改,比如你这个可以改成
    apache:apache
    当然如果用户组自己配置了也可以改成配置之后的用户组
    而且用户名、用户组名因配置而异,不见得都是apache,有的是www,有的是nobody
    最方便的查找后台使用的用户名和用户组名的方法是开777权限之后上传一张图片或者安装一个插件,之后进后台看这个图片/插件的用户名/用户组名,然后再把用户名改了,再把权限改回755,这样是最保险的。

  2. yuhuijuan说道:

    谢谢你,真的帮到我了~终于可以开始搞博客了~

发表评论

电子邮件地址不会被公开。 必填项已用*标注