之前幫人用tp3.2做了一個微信公眾號,公眾號挺簡單的,過了一段時間客戶要更換服務器,打算把之前的東西都弄到新的服務器上,痛苦的經歷就開始嘍,,,
之前他們用的也是Nginx,可能是之前某大神早已經配置好了 吧,所以我用之前的那個服務器還是聽順利 的,現在換了新的,Nginx 怎么配置完全茫然啊,因為是改東西,所以不可能完全學,一直在找那種能直接拿過來用的配置代碼,最終在慕課上搜到了答案,分享給大家,希望都能用的到,這種問題遇到還是很頭痛的
1。打開nginx.conf配置文件,找到類似如下代碼的地方(不同版本的nginx可能稍有不同,但大體都差不多)
? ? ? ? ? ? ? ? ? ? location ~ \.php$
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ? ? ?#原有代碼
? ? ? ? ? ? ? ? ? ? ? ? }
2.將其改成:
#去掉$是為了不匹配行末,即可以匹配.php/,以實現pathinfo
location ~ \.php
{
#原有代碼
#定義變量$path_info
set$path_info"";
#定義變量$real_script_name,用于存放真實地址
set$real_script_name$fastcgi_script_name;
#如果地址與引號內的正則表達式匹配
if($fastcgi_script_name~"^(.+?\.php)(/.+)$")?{
#將文件地址賦值給變量$real_script_name
set$real_script_name$1;
#將文件地址后的參數賦值給變量$path_info
set$path_info$2;
}
#配置fastcgi的一些參數
fastcgi_param?SCRIPT_FILENAME$document_root$real_script_name;
fastcgi_param?SCRIPT_NAME$real_script_name;
fastcgi_param?PATH_INFO$path_info;
}
3 保存重啟nginx
另外配置nginx的另一個小技巧順便也記一下,
server {
root ?var/www/
index ?html/index ?html/index.php ?html/index.html
}
這樣配置實現的功能是配置了網站的根目錄是 var/www,但是如果你直接訪問域名的話他會自動找var/www/html/ ?下 的相關文件,之所以想到這個是因為我給人做微信公眾號的時候他們本來已經有一個pc版的網站,假設放在了 var/www/web 目錄下,他們之前把網站的根目錄設置成了var/www/web ,但是我的項目weixin 這個文件夾放在他們之前的那個網站web文件夾里顯然有點不是很合適,但是用戶訪問域名的時候肯定是要看到人家之前做的那個門戶網站的,所以把服務器的配置改成這樣就可以實現相應的需求了,哈哈