網上一票關於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更快~ 不過我沒測試過,不敢妄加評論~