第一次安裝nginx,安裝完成後發現thinkphp無法運行。查閱相關資料後通過以下方式解決:
配置nginx pathinfo支援:
原始配置完成後:
#location ~ \.php$ {
# root E:/www;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME E:/www$fastcgi_script_name; # fastcgi_param PATH_INFO E:/www$fastcgi_script_name;
# include fastcgi_params;
#}
增加pathinfo後的配置結果:
location ~ \.php($|/) { rootE:/www; set $script $uri; set $path_info ""; if ($uri ~ "^(.+\.php)(/.+)") { set $script $1; set $path_info $2; } fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_FILENAME E:/www$script; fastcgi_param SCRIPT_NAME $script; }
添加thinkphp隱藏index.php支援:
如果入口檔案在子目錄中則為:
location / {
root E:/www;
index index.html index.php index.htm;
if (!-e $request_filename) {
rewrite ^/子目錄/(.*)$ /子目錄/index.php?s=$1 last;
break;
}
}
如果入口檔案在web目錄中為:
location / {
root E:/www;
index index.html index.php index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
打完收工