2 回答

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