本文為大家講解使用 PHP-FPM 為 Nginx 1.4.x HTTP 服務(wù)器安裝和配置 PHP 的說明和提示,已經(jīng)從源代碼成功構(gòu)建 Nginx,并且其二進(jìn)制文件和配置文件都位于 /usr/local/nginx。?本文僅包含 Nginx 服務(wù)器的基本配置,它將通過 80 端口提供 PHP 應(yīng)用的處理能力。需要注意的是,本文一律使用 ‘x’ 來表示版本號,請根據(jù)實際情況將 ‘x’ 替換為對應(yīng)的版本號。
1、安裝 Nginx
建議訪問 Nginx Wiki ? 安裝 頁面以獲取并在系統(tǒng)上安裝 Nginx。
2、獲取并解壓 PHP 源代碼
tar?zxf?php-x.x.x
3、配置并構(gòu)建 PHP
在此步驟可以使用很多選項自定義 PHP,例如啟用某些擴(kuò)展等。 運(yùn)行 ./configure –help 命令來獲得完整的可用選項清單。 在本示例中僅進(jìn)行包含 PHP-FPM 和 MySQL 支持的簡單配置。
cd?../php-x.x.x ./configure?--enable-fpm?--with-mysql make sudo?make?install
4、創(chuàng)建配置文件
創(chuàng)建配置文件,并將其復(fù)制到正確的位置。
cp?php.ini-development?/usr/local/php/php.ini cp?/usr/local/etc/php-fpm.d/www.conf.default?/usr/local/etc/php-fpm.d/www.conf cp?sapi/fpm/php-fpm?/usr/local/bin
需要著重提醒的是,如果文件不存在,則阻止 Nginx 將請求發(fā)送到后端的 PHP-FPM 模塊, 以避免遭受惡意腳本注入的攻擊。
將 php.ini 文件中的配置項 cgi.fix_pathinfo 設(shè)置為 0 。
打開 php.ini:
vim?/usr/local/php/php.ini
定位到 cgi.fix_pathinfo= 并將其修改為如下所示:
cgi.fix_pathinfo=0
5、修改 php-fpm.conf 配置
在啟動服務(wù)之前,需要修改 php-fpm.conf 配置文件,確保 php-fpm 模塊使用 www-data 用戶和 www-data 用戶組的身份運(yùn)行。
vim /usr/local/etc/php-fpm.d/www.conf
找到以下內(nèi)容并修改:
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = www-data group = www-data
然后啟動 php-fpm 服務(wù):
/usr/local/bin/php-fpm
6、配置 Nginx 使其支持 PHP 應(yīng)用
vim /usr/local/nginx/conf/nginx.conf
修改默認(rèn)的 location 塊,使其支持 .php 文件:
location / { root html; index index.php index.html index.htm; }
下一步配置來保證對于 .php 文件的請求將被傳送到后端的 PHP-FPM 模塊, 取消默認(rèn)的 PHP 配置塊的注釋,并修改為下面的內(nèi)容:
location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
重啟 Nginx。
sudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx
7、創(chuàng)建測試文件
rm /usr/local/nginx/html/index.html echo "" >> /usr/local/nginx/html/index.php
打開瀏覽器,訪問 http://localhost,將會顯示 phpinfo() 。
通過以上步驟的配置,Nginx 服務(wù)器現(xiàn)在可以以 SAPI SAPI 模塊的方式支持 PHP 應(yīng)用了。 當(dāng)然,對于 Nginx 和 PHP 的配置,還有很多可用的選項, 請在對應(yīng)的源代碼目錄執(zhí)行 ./configure –help 來查閱更多配置選項。