解决 WordPress 在 CentOS 下无法更新和上传媒体的问题
毕竟对 Linux 不是特别熟,这个问题曾经折磨过我很长一段时间。这几天特地好好的研究了下相关知识,终于解决了。
安装了 WordPress 之后,一切正常,可以打开,可以写文章,但就是不能上传图片,有插件或版本更新的时候,总是提示没有权限写目录之类的错误。
还以为是目录权限的问题,检查后没有问题,甚至一口气把所有的目录都 777 了,但故障依旧。
这个时候想起一个事儿,有人说过,如果你的 Linux 出现了奇怪的问题,请关掉 SELinux 。
如是使用:
setenforce 0
把 SeLinux 暂时关闭。然后再试试,一切正常。
好吧,果然是它!但我也知道 SELinux 对于 CentOS 而言的好处和重要性。如是重新把它打开,并研究问题所在。
Wordpress 的上传和更新主要集中在 wp-content 目录,所以查看它的相关属性:
ls -Z wp-content drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 wp-content
请注意 httpd_sys_content_t ,这个是一个只读属性的权限,所以我们可以使用 chcon 把它的属性改变:
chcon -R -t httpd_sys_rw_content_t wp-content
然后再看:
ls -Z wp-content drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 wp-content
嗯,改过来了。然后再试试 WordPress 的上传和更新功能,恢复正常了…
在进行 WordPress 系统版本升级的时候,会出现输入 FTP 用户名和密码的提示,这个时候也有可能是 SELinux 权限的问题,同样给整个 WordPress 目录赋予权限就可以了。
SELinux 对于 CentOS 而言,是非常有帮助和好处的一个功能,但现在能找到的相关 SELinux 的文章都比较晦涩难懂,导致很多人包括我在内都觉得这个东西麻烦。其实好好研究和使用它,还是很有帮助的。