1. 程式人生 > >linux系統配置nginx支援PHP解析

linux系統配置nginx支援PHP解析

nginx配置表中帶有php檔案解析的配置,預設情況下是登出掉的.開啟對應的註釋即可.註釋中有2種支援php的方式,通過php-cgi和php-fpm.

1 linux安裝fpm-php

配置nginx支援php也可以不安裝fpm-php.php-fpm是php-cli的程序管理程式,當一個程序關閉後,會自動啟動一個新的執行緒.非常強大,建議安裝裝.其他作業系統類似.國內部分映象源是php5-fpm,阿里雲上的為php7-fpm.我們以ubuntu和centos為例介紹下php-fpm安裝命令,其他linux系統類似,不再贅述.

1.1 ubuntu安裝php-fpm

  • ubuntu安裝php5-fpm

php5-fpm支援PHP5版本

apt-get install php5-fpm
  • ubuntu安裝php7-fpm

php7-fpm支援PHP7版本

apt-get install php7-fpm

1.2 centos安裝php5-fpm

yum install php5-fpm

2 linux採用php-cgi或者php-fpm支援php

linux安裝php-fpm完成後,搜尋一下是否有php5-fpm.sock或者php7-fpm.sock.

linux系統通過find命令查詢檔案:

find /-name php5-fpm

或者

find /-name php7-fpm

如果有這個檔案就採用php-fpm的模式,沒有的話就採用php-cgi模式.

3 linux修改nginx配置檔案

預設情況下修改nginx安裝目錄中的"site-enable/default"檔案.

  • nginx配置php-cgi支援php

開啟nginx.conf中fastcgi_pass 127.0.0.1:9000;這行註釋.

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;#    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini##    # With php5-cgi alone:
    fastcgi_pass 127.0.0.1:9000
;# # With php5-fpm:# fastcgi_pass unix:/var/run/php5-fpm.sock;# fastcgi_index index.php;# include fastcgi_params;}
  • nginx配置php-fpm支援php

開啟"fastcgipass unix:/var/run/php5-fpm.sock;","fastcgiindex index.php;""include fastcgi_params;"這三行註釋.如果php-fpm的版本是php7-fpm則需要手動修改檔案內容.

nginx配置php-fpm示例:

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;#    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini##    # With php5-cgi alone:#    fastcgi_pass 127.0.0.1:9000;#    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;}

4 測試nginx是否支援php

4.1 新建一個info.php檔案,

linux新建檔案的命令為touch.在nginx的web伺服器的根目錄新建一個名為info.php的檔案.

touch info.php

4.2 將以下程式碼複製到檔案中

通過vim程式編輯info.php檔案.

vim info.php

將以下程式碼複製到檔案中

<?php
    phpinfo();?>

4.3 網頁中開啟info.php檔案測試

用瀏覽器訪問info.php檔案,輸入https://dashidan.com/info.php,配置正確的話會顯示phpinfo頁面,裡面有詳細的php相關的資訊.如圖:

2-1.png

如果訪問php頁面時,該頁面從瀏覽器下載下來,沒有正確顯示phpinfo的資訊說明配置錯誤.從新檢查nginx的php相關配置.