Ubuntu Nginx部署PHP項目出現404錯誤如何解決?

Ubuntu Nginx部署PHP項目出現404錯誤如何解決?

ubuntu系統中,使用nginx部署php項目時,經常會遇到令人頭疼的404錯誤。本文將分析一個實際案例,并提供有效的解決方案。

問題描述:

一位開發者在Ubuntu系統上使用Nginx(8088端口)部署PHP項目時,所有請求均返回404錯誤。即使經過長時間的配置文件修改,問題依舊存在。其提供的Nginx配置文件片段(位于conf.d目錄下)存在錯誤,導致無法正確處理PHP請求。

問題分析與解決方案:

立即學習PHP免費學習筆記(深入)”;

問題的核心在于Nginx與PHP-FPM的交互配置。雖然未提供完整配置文件,但關鍵錯誤在于location塊的配置,它未能正確將PHP請求轉發到PHP-FPM處理。

以下是一個正確的Nginx配置文件示例:

server {     listen 80;     server_name www.h5fiction1.com;     root "D:/project/h5_fiction_1/public";      location / {         index index.html index.htm index.php;         try_files $uri $uri/ /index.php?$args;     }      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 ~ .php$ 塊定義了PHP文件的處理方式。fastcgi_pass 指向PHP-FPM監聽地址和端口(通常為127.0.0.1:9000)。fastcgi_param 設置必要參數,確保Nginx正確傳遞請求到PHP-FPM。root 指令指定項目的public目錄為根目錄。location / 塊中的try_files指令嘗試查找文件或目錄,如果找不到則將請求轉發到index.php。

開發者需要檢查以下幾點:

  • fastcgi_pass: 確保PHP-FPM監聽地址和端口正確。
  • root: 確保root 指令指向的項目public目錄準確無誤。
  • PHP-FPM服務: 確保PHP-FPM服務已啟動并正常運行。

通過仔細檢查以上配置,并根據實際項目情況調整,即可解決404錯誤。 搜索關鍵詞“thinkphp6 nginx fastcgi”或類似關鍵詞可以找到更多相關配置示例。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享