在ubuntu系統中使用nginx部署php項目時,404錯誤是一個常見問題。本文將分析一個案例,并提供有效的解決方案。該案例中,開發者在8088端口部署項目時,所有接口均返回404,即使修改配置文件也未能解決。
開發者提供的Nginx配置文件片段顯示其嘗試在80端口部署,與問題描述中的8088端口不符。配置文件的核心問題在于PHP處理配置。
正確配置的關鍵在于location塊和fastcgi指令。以下是一個修正后的配置文件示例:
server { listen 80; # 需根據實際情況修改為8088 server_name www.h5fiction1.com; root "D:/project/h5_fiction_1/public"; # 確保路徑正確指向項目public目錄 location / { index index.html index.htm index.php; #autoindex on; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } location ~ .php(.*)$ { fastcgi_pass 127.0.0.1:9000; # 確保PHP-FPM監聽此端口 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; } }
關鍵點:
立即學習“PHP免費學習筆記(深入)”;
- root指令: 必須準確指向你的PHP項目public目錄(包含index.php)。
- fastcgi_pass指令: 指向PHP-FPM監聽的地址和端口(通常是127.0.0.1:9000,但需根據實際情況調整)。
- rewrite指令: 如果你的項目使用如thinkphp6等框架并有路由規則,則可能需要調整此指令以匹配你的路由。
- 端口號: listen指令中的端口號必須與實際監聽端口一致(80或8088)。
- PHP-FPM: 確保PHP-FPM已正確安裝和啟動。
如果問題依然存在,檢查PHP-FPM日志文件獲取更多錯誤信息。仔細核對配置文件中的路徑和端口設置,確保與項目結構和PHP-FPM配置匹配。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END