2 回答

TA貢獻1852條經驗 獲得超1個贊
location ~ \.php$ {
root /usr/share/nginx/html;
try_files $uri = 404;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;

TA貢獻2019條經驗 獲得超9個贊
直接貼上代碼逐行進行講解,此處貼出一個能正常啟動php腳本的最簡nginx vhost配置:
[plain] view plain copy
server {
listen 8011;
server_name test.cn;
location ~ \.php?.*$ {
root /share/test;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
1、第一個大括號 server{ }:不必多說,代表一個獨立的server,
2、listen 8011:代表該server監聽8011端口
3、location ~ \.php?.*${
}:代表一個能匹配對應uri的location,用于匹配一類uri,并對所匹配的uri請求做自定義的邏輯、配置。這里的location,匹配了所有帶.php的uri請求,例如:http://192.168.244.128:8011/test.php/asdasd
http://192.168.244.128:8011/index.php等
4、root /share/test:請求資源根目錄,告訴匹配到該location下的uri到/share/teset文件夾下去尋找同名資源。
5、fastcgi_pass 127.0.0.1:9000:這行開始是本文的重點:這行代碼的意思是,將進入到該location內的uri請求看做是cgi程序,并將請求發送到9000端口,交由php-fpm處理。
6、fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
:這行配置意思是:動態添加了一行fastcgi配置,配置內容為SCRIPT_FILENAME,告知管理進程,cgi腳本名稱。由于我的nginx中只有fastcgi_params文件,沒有fastcgi.conf文件,所以要使php-fpm知道SCRIPT_FILENAME的具體值,就必須要動態的添加這行配置。
7、include fastcgi_params; 引入fastcgi配置文件
以上就是最簡潔版的nginx啟動php腳本的最簡配置,當重啟nginx之后,在/share/test目錄下創建一個xx.php文件,輸入<?php
echo "hello world"; ?>保存,然后在瀏覽器中訪問localhost:8011/xx.php
就可以在網頁上顯示hello world了。
- 2 回答
- 0 關注
- 891 瀏覽
添加回答
舉報