Linux 安装 WordPress 后无法打开,提示 permission denied

450次阅读
没有评论

不使用安装脚本,手动安装的情况下,很多人第一次尝试手动安装 WordPress时,经常会出现什么该做的都做完了,但是访问域名就是没办法打开的情况。

这种情况首先应该查看日志排除问题,在命令行输入
journalctl -u nginx

如果发现是报错 permission denied。那一般就是与 selinux 有关的问题。
可以根据不同的内容排查问题,原因一般有下面几种:

1. nginx没有php的访问权限(php的启动用户不是nginx)
解决办法:编辑php-fpm配置文件,然后将user 和 group 改为 nginx

vi /etc/php-fpm.d/www.conf
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

2. nginx 没有 wordpress 目录的访问权限
解决方法:将wordpress目录的用户改成 nginx

chown -R nginx:nginx /var/www/wordpress/

find /var/www/wordpress/ -type d -exec chmod 755 {} \;

find /var/www/wordpress/ -type f -exec chmod 644 {} \; 

这里的命令要改成你的 wordpress 目录再输入
类似的问题还有 ssl 证书的没有访问权限,解决方法也与上面类似。只不过要把目录名再改成你对应的目录位置

3. 上面的工夫都做了,什么问题都排查了,但是还是无法访问。这时一般就就要查看selinux 的上下文设置了。 运行下面的命令:

 getsebool -a | grep 'httpd' 

查看 httpd_can_network_connect –> off 是不是关闭的状态,如果是就要运行 setsebool -P httpd_can_network_connect on 开启与服务器与外界的连接

当然你说上面的都试过了,还是不行,别急,有关selinux的部分还没有讲完。

4. 检查wordress 目录的上下文

 cd /var/www;
 ls -lZ 

查看输出:

drwxr-xr-x. 5 nginx nginx unconfined_u:object_r:httpd_sys_content_t:s0     4096 Nov 27 13:25 wordpress

可以发现wordpress 的上下文是 httpd_sys_content_t ,如果不一样就要改成一样的,输入:

 semanage fcontext -a -t httpd_sys_content_t "/var/www/wordpress(/.*)?"

而且也要把wordpress需要写入权限的文件的上下文也改一改,否则会出现无法上传文件或者更改网站语言等问题

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wordpress/wp-content(/.*)?" 
semanage fcontext -a -t httpd_sys_rw_content_t /var/www/wordpress/wp-config.php 
最后使其生效:
restorecon -R -v /var/www/wordpress/

完成后测试一下,一般都能正常访问wordpress的安装页面了

补充:
如果你输入上面的命令时提示

-bash: semanage: command not found

那么就应该先安装 semanage 的相关工具

yum -y install policycoreutils-python
正文完
 1
评论(没有评论)