在使用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。所以这里的所有者有了区别。
时间: 2024-10-09 10:04:53