本文檔包括使用 PHP-FPM 為(wèi) Nginx 1.4.x HTTP 服務器安裝和(hé)配置 PHP 的說明(míng)和(hé)提示。
本指南假定您已經從(cóng)源代碼成功構建 Nginx,并且其二進制文件和(hé)配置文件都(dōu)位于 /usr/local/nginx。 如(rú)果您使用其他(tā)方式獲取的 Nginx,請(qǐng)參考 » Nginx Wiki 并對照本文檔完成安裝。
本文檔僅包含 Nginx 服務器的基本配置,它将通(tōng)過 80 端口提供 PHP 應用的處理能(néng)力。 如(rú)果您需要(yào)超出本文檔範圍的安裝配置指導,建議(yì)您查閱 Nginx 和(hé) PHP-FPM 的文檔。
需要(yào)注意的是,本文檔一(yī)律使用 'x' 來表示版本号,請(qǐng)根據實際情況将 'x' 替換為(wèi)對應的版本号。
建議(yì)您訪問(wèn) Nginx Wiki » 安裝 頁面以獲取并在您的系統上(shàng)安裝 Nginx。
獲取并解壓 PHP 源代碼:
tar zxf php-x.x.x
配置并構建 PHP。在此步驟您可(kě)以使用很(hěn)多選項自(zì)定義 PHP,例如(rú)啓用某些擴展等。 運行(xíng) ./configure --help 命令來獲得完整的可(kě)用選項清單。 在本示例中,我們僅進行(xíng)包含 PHP-FPM 和(hé) MySQL 支持的簡單配置。
cd ../php-x.x.x
./configure --enable-fpm --with-mysql
make
sudo make install
創建配置文件,并将其複制到正确的位置。
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
需要(yào)着重提醒的是,如(rú)果文件不存在,則阻止 Nginx 将請(qǐng)求發送到後端的 PHP-FPM 模塊, 以避免遭受惡意腳本注入的攻擊。
将 php.ini 文件中的配置項 cgi.fix_pathinfo 設置為(wèi) 0 。
打開(kāi) php.ini:
vim /usr/local/php/php.ini
定位到 cgi.fix_pathinfo= 并将其修改為(wèi)如(rú)下(xià)所示:
cgi.fix_pathinfo=0
在啓動服務之前,需要(yào)修改 php-fpm.conf 配置文件,确保 php-fpm 模塊使用 www-data 用戶和(hé) www-data 用戶組的身份運行(xíng)。
vim /usr/local/etc/php-fpm.d/www.conf
找到以下(xià)內(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 服務:
/usr/local/bin/php-fpm
本文檔未涵蓋對 php-fpm 進行(xíng)進一(yī)步配置的信息,如(rú)果您需要(yào)更多信息,請(qǐng)查閱相關文檔。
配置 Nginx 使其支持 PHP 應用:
vim /usr/local/nginx/conf/nginx.conf
修改默認的 location 塊,使其支持 .php 文件:
location / {
root html;
index index.php index.html index.htm;
}
下(xià)一(yī)步配置來保證對于 .php 文件的請(qǐng)求将被傳送到後端的 PHP-FPM 模塊, 取消默認的 PHP 配置塊的注釋,并修改為(wèi)下(xià)面的內(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
創建測試文件。
rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
打開(kāi)浏覽器,訪問(wèn) http://localhost,将會顯示 phpinfo() 。
通(tōng)過以上(shàng)步驟的配置,Nginx 服務器現在可(kě)以以 SAPI SAPI 模塊的方式支持 PHP 應用了(le)。 當然,對于 Nginx 和(hé) PHP 的配置,還有很(hěn)多可(kě)用的選項, 請(qǐng)在對應的源代碼目錄執行(xíng) ./configure --help 來查閱更多配置選項。
網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發