网上一票关于php-fpm如何由pid形式,转化成socket连接形式,但都是他抄你,你抄他,没意思~ 关键的东西一直没讲~ bullshit~
总结:在最新nginx、php下实践如下:
第一步:添加php5-fpm.sock文件
cd /var/run
sudo vim php5-fpm.sock //啥也不写入,只要这个文件就可以了~
保存,退出
第二步:改nginx下server配置
location ~ \.php$ {
#with php5-cgi alone;
#fastcgi_pass
127.0.0.1:9000; //
这边注释掉的,就是平时大家配置的nginx连接fastcgi的方式,是tcp方式
#with php5-fpm;
fastcgi_pass unix:/var/run/php5-fpm.sock; //这种就是socket连接形式,默认是注释掉的,需要把前面#去掉
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
改完,重启nginx,发现localhost变成502 bad gateway错误,那就对了~哈哈~
第三步:修改php-fpm.conf ,但ubuntu12.04中的fpm放在,/etc/php5/fpm下
cd /etc/php5/fpm/pool.d
sudo vim www.conf
listen = /var/run/php5-fpm.sock //把原来的127.0.0.1:9000改掉
保存,退出。
第四步:重启nginx,重启php5-fpm ,everything is ok~
话说,在高并发情况下,TCP比socket更稳定,但socket比TCP更快~ 不过我没测试过,不敢妄加评论~