在Ubuntu上使用Nginx部署PHP項目時,如何解決404錯誤?

在Ubuntu上使用Nginx部署PHP項目時,如何解決404錯誤?

ubuntu系統下nginx部署php項目:404錯誤排查與解決

在Ubuntu服務器上使用Nginx部署PHP項目時,如果所有接口都返回404錯誤,通常是Nginx配置文件配置不當導致的。本文將詳細分析此問題并提供解決方案。

問題描述

用戶嘗試在Ubuntu系統上使用Nginx在8088端口部署服務,但經過多次配置調整后,仍然無法訪問,所有接口均返回404錯誤。

配置文件錯誤分析

提供的Nginx配置文件中,fastcgi部分配置存在問題,導致PHP文件無法正確解析。錯誤配置示例如下:

# 錯誤配置示例 location ~ .php$ {     fastcgi_pass   127.0.0.1:9000;     fastcgi_index  index.php;     include fastcgi_params; }

此配置可能無法正確處理PHP請求。

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

正確的Nginx配置文件

針對thinkphp 6框架,以下是一個正確的Nginx配置文件示例:

server {     listen       80;     server_name  www.h5fiction1.com;     root         /var/www/h5_fiction_1/public; # 請替換為你的項目public目錄的實際路徑      location / {         try_files $uri $uri/ /index.php?$args;     }      location ~ .php$ {         try_files $uri =404;         fastcgi_split_path_info ^(.+.php)(/.+)$;         fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 或你的php-fpm socket路徑         fastcgi_index index.php;         include fastcgi_params;         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;         fastcgi_param PATH_INFO $fastcgi_path_info;     } }

注意: 請將/var/www/h5_fiction_1/public替換為你的項目public目錄的實際路徑,并將unix:/run/php/php7.4-fpm.sock替換為你的php-fpm socket路徑。

配置詳解

  1. 監聽端口和服務器名稱: listen 80; 監聽80端口;server_name www.h5fiction1.com; 設置服務器名稱。

  2. 根目錄: root /var/www/h5_fiction_1/public; 指定項目public目錄作為網站根目錄。

  3. URL處理: try_files $uri $uri/ /index.php?$args; 優先查找靜態文件,如果找不到則將請求轉發到index.php。

  4. PHP處理: location ~ .php$ { … } 匹配所有.php文件;fastcgi_pass 指定PHP-FPM的socket路徑;fastcgi_split_path_info、fastcgi_param 等參數確保正確解析PHP請求的路徑信息。

通過以上配置,你應該能夠解決Nginx部署PHP項目時遇到的404錯誤。 請確保PHP-FPM服務已正確安裝和運行,并且Nginx配置文件語法正確。 使用 nginx -t 命令檢查配置文件語法。 如果仍然存在問題,請檢查PHP-FPM的日志文件以獲取更多錯誤信息。

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