(PS:首先我是新手,正在学习阿铭的Linux,实验是按照阿铭的视频和书来做的,求抱大神大腿=。=)
前天搭建完LNMP的时候就碰到php-fcgi.sock的权限问题,在上篇文章中也介绍过,虽说发现了这个问题,也临时处理掉这问题,但因为时间问题没有彻底解决(因为下班时间到了,肚子饿的受不了了··=。=,原谅我是个吃货!)就昨天干完活之后,乘着有时间就着手这个问题。
首先nignx与php-fpm的连接是通过php-fcgi.sock进行的,如果php-fcgi.sock出现问题将出现502BAD GATWAY问题,也就是无法连接通信。php-fcgi.sock当php启动时产生,关闭时清除。虽然在php启动时给php-fcgi.sock 755权限,但是重启php时还是会变成rw-rw--权限,并且user、group都是root。然后查看nginx的error.log日志,发现是确实是php-fcgi.sock的权限问题导致无法连接(因为现在在宿舍码字,忘了截图了)。
发现问题了就开始解决问题。首先找到php.conf,vi,
[global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log [www] listen = /tmp/php-fcgi.sock user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024
上面这个是阿铭的配置情况,可以看出来并没有权限配置。我想是因为版本问题吧,阿铭那时候的版本太老了,我现在的版本跟他不一样,也导致环境配置也不一样,之前在LNMP环境搭建中也遇到版本不同而出现的问题。好吧,开始更改环境,在listen下面加上listen.user=php-fpm ; listen.group=php-fpm ; listen.mode=0666;(权限可以更大)。重新启动php-fpm,发现权限变成rw-rw-rw php-fpm php-fpm。
总结:在公司听前辈说,权限还有更深入的更详细的,看来是我小瞧它了······吸取教训,再看看内容。