在使用nginx打开论坛时,网站根目录正确,但是打开网页502

这这时候可以查看nginx的错误日志,在配置文件中有定义:/usr/local/nginx/logs/nginx_error.log

可以看到 unix:/tmp/wyp.sock failed (13: Permission denied)这一行,说明nginx没有权限读取sock文件,所以造成502。如果是监听的IP,则没有这个问题。

ls /tmp/wyp.sock 可以看到其他没有任何权限,这时候有两种解决办法:

1:修改/tmp/wyp.sock的权限777  (临时起效,服务重启后失效

2:在/usr/local/php/etc/php-fpm.conf中,监听nginx的身份nobody

配置如下:在服务配置中插入以下代码

listen = /tmp/wyp.sock

listen.owner = nobody

listen.group = nobody


因为wyp.sock是php启动后产生的文件,nginx默认没有权限。

监听nginx的用户身份后,才给予权限读取。



个人疑问:

1.lamp环境下,discuz的目录需要改为daemon.才有读写权限安装

2.lnmp环境下,discuz的目录需要改为php-fpm才有读写权限安装

是不是,我可以认为,discuz是一个php的安装脚本或程序,php要执行,必须的有相关目录的权限。apache因为是调用php模块,模块属于自身的一部分。所以php的相关操作,身份还是apache本身。即daemon

而nginx只是代理了php,把相关请求转交给php,最终的执行身份是php-fpm。所以这里的所有者有了区别。