Ubuntu下Nginx部署PHP項目返回404錯誤如何解決?

Ubuntu下Nginx部署PHP項目返回404錯誤如何解決?

ubuntu系統(tǒng)中使用nginx部署php項目時,遇到404錯誤是一個常見問題。本文將分析并解決此類問題,以一個具體的案例為例。

問題:開發(fā)者在Ubuntu系統(tǒng)上使用Nginx的8088端口部署PHP項目,修改配置文件后仍無法訪問,所有接口返回404錯誤。問題根源在于Nginx配置文件中location塊的錯誤配置,導致Nginx無法正確處理PHP請求。

解決方案:核心問題在于Nginx如何將PHP請求傳遞給PHP處理程序(PHP-FPM)。以下是一個修正后的Nginx配置文件示例:

server {     listen 80; # 監(jiān)聽端口,請根據(jù)實際情況修改,原文中提到的8088端口在此處未體現(xiàn)     server_name www.h5fiction1.com;     root /var/www/h5_fiction_1/public; # 請根據(jù)實際項目路徑修改,建議使用絕對路徑      location / {         try_files $uri $uri/ /index.php?$args; #嘗試查找文件或目錄,若不存在則轉發(fā)到index.php     }      location ~ .php$ {         include snippets/fastcgi-php.conf; #包含fastcgi-php配置         fastcgi_pass unix:/run/php/php8.1-fpm.sock; #或127.0.0.1:9000,根據(jù)PHP-FPM配置修改     } }

此配置的關鍵在于location ~ .php$塊,它定義了如何處理PHP文件。fastcgi_pass指向PHP-FPM的監(jiān)聽地址和端口(此處使用socket方式,更安全高效,請根據(jù)你的PHP-FPM配置調整)。try_files指令優(yōu)先嘗試查找靜態(tài)文件,若不存在則將請求轉發(fā)到index.php。root指令指定網站根目錄,請使用絕對路徑并確保其下存在public文件夾及index.php文件。

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

重要檢查點:

  • PHP-FPM: 確保PHP-FPM已正確安裝和配置,并正在監(jiān)聽指定的端口或socket。檢查PHP-FPM日志以查找錯誤。
  • 權限: 檢查Nginx用戶對項目文件和目錄的讀寫權限。
  • 端口: 確認Nginx監(jiān)聽的端口與配置文件中一致,以及是否與其他服務沖突。 原文中提到的8088端口可能需要在實際配置中修改為80或其他端口。
  • 路徑: 仔細檢查root指令指定的路徑是否正確,確保指向項目根目錄下的public文件夾(或你的項目入口文件所在目錄)。 使用絕對路徑可以避免歧義。

通過以上步驟,并仔細檢查每個配置項,應該能夠解決Nginx部署PHP項目返回404錯誤的問題。 建議使用try_files指令代替原有的if指令,因為它更簡潔高效且易于維護。 同時,使用unix socket連接PHP-FPM比TCP連接更安全和高效。

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