簡單說
(我也就知道這麼多),nginx處理請求是透過fpm(來管理fastcgi的)來實現請求和回應。
而nginx和php-fpm可以透過監聽9000埠(預設)或socket來實現。
而9000的格式是127.0.0.1:9000,是走網路的。透過ngxin的conf文件,把.php結尾的都交給9000埠處理,php-fpm(fastggi的進程管理器)選擇並連接到一個fastcgi子進程,並將環境變數和標準輸入送到fastcgi子進程,然後不斷的處理請求回應
socket檔案就不走網絡,是套接字。
好,至於速度對比和最佳化配置,先不說。
先說ubuntu(14.10 lts)升級php7
sudo add-apt-repository ppa:ondrej/php-7.0 sudo apt-get update sudo apt-get install php7.0-fpm
升級完成後,之前的fpm檔案還在。可以酌情參考或刪除
php -v
PHP 7.0.1-4+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015,
by Zend Technologies
更改phpfpm監聽9000埠為socket (預設就是socket)
php7預設的是socket,所以如果依照之前nginx -conf文件,php文件處理會報502錯誤。
預設的sock是在php設定檔中的,pool.d中的www.conf
root@tb:/etc/php/7.0/fpm# pwd /etc/php/7.0/fpm root@tb:/etc/php/7.0/fpm# ls conf.d php-fpm.conf php.ini pool.d root@tb:/etc/php/7.0/fpm#
在這兩行:
listen = /run/php/php7.0-fpm.sock ; listen = 127.0.0.1:9000 ## 更改nginx conf文件 ##
nginx 設定檔我的是在
root@tb:/etc/nginx/conf.d# ls git.conf svn.conf tb.conf
修改其中的git.conf如下
server{
listen 80;
server_name git.com ;
root /home/gittest/;
autoindex on;
location ~ \.php$ {
root /home/gittest;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME /home/gittest/$fastcgi_script_name;
include fastcgi_params;
}
}重啟php-fpm和nginx
root@tb:/etc/nginx/conf.d# service nginx reload
* Reloading nginx configuration nginx [ OK ]
root@tb:/etc/nginx/conf.d# service php7-fpm status
* php-fpm7.0 is running
root@tb:/etc/nginx/conf.d# service php7-fpm reload
* Reloading PHP 7.0 FastCGI Process Manager php-fpm7.0[ OK ]
root@tb:/etc/nginx/conf.d#
要注意是ok才可以,具體的nginx和fpm的腳本執行檔(可自行修改)在:
root@tb:/etc/init.d# ls /etc/init.d/ |grep php7
php7-fpm
root@tb:/etc/init.d# ls /etc/init.d/ |grep nginx
nginx
root@tb:/etc/init.d#補充:如果想透過apt-get換回之前版本
sudo add-apt-repository ppa:ondrej/php5 sudo apt-get update
然後再install就好了
以上是Ubuntu升級php7.0配置fpm socket的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!