ThinkPHP 的 nginx 配置踩坑

thinkphp 的 nginx 配置踩坑

今天在用一個(gè)以 tp 為基礎(chǔ)的快速開發(fā)框架時(shí)遇到一些問題:

nginx 報(bào)錯(cuò)截圖

ThinkPHP 的 nginx 配置踩坑

為了方便說明進(jìn)行手動(dòng)換行

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

//?處理時(shí)重寫或內(nèi)部重定向循環(huán) 2019/11/11?11:16:06?[error]?15164#15432:?*1?rewrite?or?internal?redirection?cycle?while?processing? ????"/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index/user/index.html",? ????client:?127.0.0.1,? ????server:?xxxxx,? ????request:?"GET?/index/user/index.html?HTTP/1.1",? ????host:?"xxxxx",? ????referrer:?"xxxxx"

錯(cuò)誤配置

參考 larvael 配置

server?{ ????. ????. ????. ????location?/?{ ????????try_files?$uri?$uri/?/index.php?$query_string; ????} ????. ????. ????. ????location?~?.php$?{ ????????fastcgi_pass127.0.0.1:9000; ????????fastcgi_index?index.php; ????????fastcgi_param?SCRIPT_FILENAME?$realpath_root$fastcgi_script_name; ????????include?fastcgi_params; ????} ????. ????. ????. }

發(fā)現(xiàn)所有路徑都一樣,都是首頁效果

初步判斷 nginx 重寫規(guī)則有問題

#?路徑?/?開頭之后都走這個(gè)匹配 #?如?/index?/index/user? location?/?{ ????#?$uri?本地有就返回,或者$uri/?本地有目錄就返回,或者走后面的重寫 ????#?本地是指在網(wǎng)站根目錄下,如?當(dāng)?$uri=index?就是看根目錄下面有?index?文件或者?index/?目錄 ????try_files?$uri?$uri/?/index.php?$query_string; }

開始報(bào)錯(cuò)


解決問題

網(wǎng)上查詢后 tp5 的配置應(yīng)為

????location?/?{ ????????try_files?$uri?$uri/?/index.php$uri; ????}

改后,發(fā)現(xiàn)問題沒解決;對(duì)比配置發(fā)現(xiàn)

??#?location?~?.php$?改成??location?~?.php(.*)$ ????location?~?.php(.*)$?{ ????????fastcgi_pass???127.0.0.1:9000; ????????fastcgi_index?index.php; ????????fastcgi_split_path_info??^((?U).+.php)(/?.+)$; ????????fastcgi_param??SCRIPT_FILENAME??$document_root$fastcgi_script_name; ????????fastcgi_param??PATH_INFO??$fastcgi_path_info; ????????fastcgi_param??PATH_TRANSLATED??$document_root$fastcgi_path_info; ????????include?fastcgi_params; ????}

解決,完整配置

server?{ ????listen???????80; ????server_name??xxxxxxx?; ????root??www; ????add_header?X-Frame-Options?"SAMEORIGIN"; ????add_header?X-XSS-Protection?"1;?mode=block"; ????add_header?X-Content-Type-Options?"nosniff"; ????charset?utf-8; ????index?index.html?index.htm?index.php; ????location?/?{ ????????try_files?$uri?$uri/?/index.php$uri; ????} ????location?=?/favicon.ico?{?access_log?off;?log_not_found?off;?} ????location?=?/robots.txt??{?access_log?off;?log_not_found?off;?} ????error_page?404?/index.php; ????location?~?.php(.*)$?{ ????????fastcgi_pass???127.0.0.1:9000; ????????fastcgi_index?index.php; ????????fastcgi_split_path_info??^((?U).+.php)(/?.+)$; ????????fastcgi_param??SCRIPT_FILENAME??$document_root$fastcgi_script_name; ????????fastcgi_param??PATH_INFO??$fastcgi_path_info; ????????fastcgi_param??PATH_TRANSLATED??$document_root$fastcgi_path_info; ????????include?fastcgi_params; ????} ????location?~?/.(?!well-known).*?{ ????????deny?all; ????} }

推薦學(xué)習(xí):thinkphp教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享