Ubuntu升級php7.0設定fpm socket的方法詳解

2020-07-16 10:06:14
簡單說

(我也就知道這麼多),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

[email protected]:/etc/php/7.0/fpm# pwd
/etc/php/7.0/fpm
[email protected]:/etc/php/7.0/fpm# ls
conf.d  php-fpm.conf  php.ini  pool.d
[email protected]:/etc/php/7.0/fpm#

在這兩行:

listen = /run/php/php7.0-fpm.sock
; listen = 127.0.0.1:9000
## 更改nginx conf檔案 ##

nginx 組態檔我的是在

  [email protected]:/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

    [email protected]:/etc/nginx/conf.d# service nginx reload
     * Reloading nginx configuration nginx                                                                           [ OK ] 
     
    [email protected]:/etc/nginx/conf.d# service php7-fpm status
     * php-fpm7.0 is running
    [email protected]:/etc/nginx/conf.d# service php7-fpm reload
     * Reloading PHP 7.0 FastCGI Process Manager php-fpm7.0[ OK ] 
    [email protected]:/etc/nginx/conf.d#

要注意是ok才可以,具體的nginx和fpm的指令碼執行檔案(可自己修改)在:

    [email protected]:/etc/init.d# ls /etc/init.d/ |grep php7
    php7-fpm
    [email protected]:/etc/init.d# ls /etc/init.d/ |grep nginx
    nginx
    [email protected]:/etc/init.d#

補充:如果想通過apt-get換回去之前版本

sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update

然後再install就好了

以上就是Ubuntu升級php7.0設定fpm socket的方法詳解的詳細內容,更多請關注TW511.COM其它相關文章!