使用WordPress搭建的个人网站更新失败,提示:无法创建目录。
原因是执行更新程序的是www用户,需要把插件或主程序下载到 /alidata/www/phpwind,而这个目录下很多文件的所有者是root用户,即www用户没有权限,所以修改目录所有者即可,进入 /alidata/www/phpwind 目录,输入命令:
chown -R www:www ./
现在再次运行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 |