本文檔包括使用 PHP-FPM 為 Nginx 1.4.x HTTP 服務器安裝和配置 PHP 的說明和提示。
本指南假定您已經從源代碼成功構建 Nginx,并且其二進制文件和配置文件都位于 /usr/local/nginx。 如果您使用其他方式獲取的 Nginx,請參考 ? Nginx Wiki 并對照本文檔完成安裝。
本文檔僅包含 Nginx 服務器的基本配置,它將通過 80 端口提供 PHP 應用的處理能力。 如果您需要超出本文檔范圍的安裝配置指導,建議您查閱 Nginx 和 PHP-FPM 的文檔。
需要注意的是,本文檔一律使用 'x' 來表示版本號,請根據實際情況將 'x' 替換為對應的版本號。
1:建議您訪問 Nginx Wiki ? 安裝 頁面以獲取并在您的系統上安裝 Nginx。
2.獲取并解壓 PHP 源代碼:
tar zxf php-x.x.x
3.配置并構建 PHP。在此步驟您可以使用很多選項自定義 PHP,例如啟用某些擴展等。 運行 ./configure --help 命令來獲得完整的可用選項清單。 在本示例中,我們僅進行包含 PHP-FPM 和 MySQL 支持的簡單配置。
cd ../php-x.x.x
./configure --enable-fpm --with-mysql
make
sudo make install
4.創建配置文件,并將其復制到正確的位置。
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
5.需要著重提醒的是,如果文件不存在,則阻止 Nginx 將請求發送到后端的 PHP-FPM 模塊, 以避免遭受惡意腳本注入的攻擊。
將 php.ini 文件中的配置項 cgi.fix_pathinfo 設置為 0 。
打開 php.ini:
vim /usr/local/php/php.ini
定位到 cgi.fix_pathinfo= 并將其修改為如下所示:
cgi.fix_pathinfo=0
6.在啟動服務之前,需要修改 php-fpm.conf 配置文件,確保 php-fpm 模塊使用 www-data 用戶和 www-data 用戶組的身份運行。
vim /usr/local/etc/php-fpm.conf
找到以下內容并修改:
; 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 進行進一步配置的信息,如果您需要更多信息,請查閱相關文檔。
7.配置 Nginx 使其支持 PHP 應用:
vim /usr/local/nginx/conf/nginx.conf
修改默認的 location 塊,使其支持 .php 文件:
location / {
root html;
index index.php index.html index.htm;
}
下一步配置來保證對于 .php 文件的請求將被傳送到后端的 PHP-FPM 模塊, 取消默認的 PHP 配置塊的注釋,并修改為下面的內容:
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
8.創建測試文件。
rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
打開瀏覽器,訪問 http://localhost,將會顯示 phpinfo() 。
通過以上步驟的配置,Nginx 服務器現在可以以 SAPI 模塊的方式支持 PHP 應用了。 當然,對于 Nginx 和 PHP 的配置,還有很多可用的選項, 請在對應的源代碼目錄執行 ./configure --help 來查閱更多配置選項。
- 入門指引
- 簡介
- PHP是什么
- PHP能做什么
- 簡明教程
- 學PHP需要什么
- 我的第一個PHP頁面
- 實用的PHP腳步
- PHP是如何處理表單的
- 在新版本的PHP如何實用舊的PHP代碼
- 下一步需要做什么
- PHP語言參考
- PHP基本語法
- PHP標記
- PHP多進程管理-pcntl_fork
- PHP文件上傳易犯錯誤
- PHP從HTML中分離
- PHP的指令分隔符
- PHP序列化serialize
- PHP類常量
- PHP Traits
- 從 HTML 中分離
- 注釋
- PHP數據類型
- PHP支持的類型簡介
- 布爾類型(Boolean)就是易經知識
- 整型(integer)即整數
- 浮點型(float)
- 字符串(string)
- 數組(Array)
- 對象(object)一定要搞
- 資源類型(resource)
- PHP安裝與環境配置
- 安裝前需要考慮的事項
- Unix系統下安裝PHP
- Unix 系統下安裝 Apache 1.3.x
- Unix 系統下安裝 Apache 2.x
- Unix 系統下安裝 Nginx 1.4.x
- Unix 平臺安裝 Lighttpd 1.4
- Sun Solaris 上的 Sun、iPlanet 和 Netscape 服務器
- CGI 命令行設置
- 針對 HP-UX 平臺的安裝提示
- 在 OpenBSD 系統下的安裝PHP
- Debian GNU/Linux 安裝說明
- 在Mac OS X 系統下安裝PHP
- 使用軟件包
- 使用內置的 PHP
- Windows 系統下的安裝
- 云計算平臺上的安裝
- Microsoft Azure
- 在亞馬遜(Amazon EC2)安裝PHP
- PHP語法參考
- 類型
- NULL
- Callback 回調類型
- 本文檔中使用的偽類型與變量
- 類型轉換的判別
- PHP 類型比較表
- 常量和變量
- 語法基礎
- 預定義變量
- 變量范圍
- 可變變量
- 外部變量
- 常量
- 語法
- 魔術常量
- PHP表達式&運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- continue
- switch
- declare
- return
- require
- include
- require_once