現如今,PHP已是一門廣泛使用的服務器腳本語言,用于Web開發。然而,使用Nginx作為Web服務器時,它本身并不直接支持PHP。這會讓像WordPress、Drupal和Joomla等使用PHP編寫的應用程序變得難以實現,因此,充分理解如何允許Nginx支持PHP是非常必要的。
要使Nginx支持PHP,您需要使用一種PHP解釋器,例如PHP-FPM(PHP FastCGI Process Manager)。該解釋器負責將PHP腳本轉換為可被Web服務器數據通信協議(如HTTP)理解的格式。與此同時,我們需要配置Nginx和PHP-FPM,以在應用程序的Web服務中正確地使用它們。
首先,您需要安裝PHP-FPM。許多Linux發行版都可以通過默認軟件包倉庫中的預編譯二進制包來安裝它。例如,在Debian或Ubuntu上:
sudo apt-get install php-fpm
一旦PHP-FPM 的安裝完成,我們需要將其配置為啟動Nginx。您需要打開/etc/php-fpm.d/www.conf文件,并找到以下兩行:;listen = 127.0.0.1:9000
listen = /var/run/php/php7.0-fpm.sock
取消注釋這兩行中某一行,并確保它與下面的代碼行相符:listen.owner = www-data
listen.group = www-data
listen.mode = 0660
這些行可以告訴PHP-FPM在哪里為Nginx提供服務,并為其進程設置所有者、組和訪問權限。此處,我們選擇使用Unix域套接字/var/run/php/php7.0-fpm.sock?,F在,將Nginx配置文件更新如下:server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* \.(php|phtml)$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_intercept_errors on;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
include fastcgi_params;
}
}
該配置文件包含2個location塊。第一個location塊定義Nginx對請求根目錄/和一般的非PHP文件(例如JavaScript和CSS文件)的響應。第二個location塊定義對.do或.php擴展名腳本的響應,以及解釋器相關的設置。這個設置使Nginx接受FastCGI模塊的連接,傳遞腳本到PHP-FPM套接字,并獲取響應數據以作為HTTP響應返回。
總結起來,Nginx不支持PHP的事實可能對您的Web開發造成很大的障礙。無論您使用的是哪個Linux發行版,使用PHP-FPM安裝和配置,可以讓Nginx支持PHP腳本的解釋。配置Nginx和PHP-FPM實際上并不需要太多的知識,如果您按照以上步驟操作,便可輕松實現您的目標。下一篇css3上下飄動