fix some old bugs&add some new bugs.pls enjoy our new bugs:)

php5.5.12似乎修复了一个由unix socket引起的提权bug,但是升级后发现,NginX产生502错误了

检查后发现,PHP-FPM在新版里为了修复php的unix socket默认值666权限带来的可能的跨站风险而把的umask设置成了660(666=所有用户都可以读写 在虚拟主机环境下 任何用户都可以读取其它用户的socket 这确实不安全)。导致NginX无法读写php的socket造成502错误

解决方案:

方法1:设置php的unix socket所有者和组与NginX相同(lnmp一键包里是www:www)

具体步骤为:

在php-fpm.conf文件(lnmp一键包对应文件位置在:/usr/local/php/etc。以下假设环境为lnmp一键包创建的)的[www]区段内加上:

listen.owner = www
listen.group = www
listen.mode = 0660

方法2:设置php的unix socket的umask为666。但是每次重启PHP都要重新设置一次

方法3:设置php-cgi使用tcp方式监听,并且重设NginX的php-fcgi里的后端地址

 

目前非常不建议升级到php5.5,虽然性能提高很明显,但是bug同样很多。目前已知问题:

1、打开探针并多次刷新,会导致segmentation fault,目前为止未修复

2、FPM会莫名其妙认为子进程忙碌并fork一堆进程,此问题在php5.5.11已修复