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