Ubuntu Nginx部署PHP項(xiàng)目404錯(cuò)誤:如何正確配置Nginx和PHP-FPM?

Ubuntu Nginx部署PHP項(xiàng)目404錯(cuò)誤:如何正確配置Nginx和PHP-FPM?

ubuntu系統(tǒng)上使用nginx部署php項(xiàng)目時(shí),404錯(cuò)誤是常見的難題。本文將分析此問題,并提供有效的解決方案。

問題場景: 用戶在Ubuntu系統(tǒng)上使用Nginx(8088端口)部署PHP項(xiàng)目,所有請求均返回404錯(cuò)誤。即使修改了Nginx配置文件,問題依然存在。

問題根源及解決方案:

問題主要在于Nginx與PHP-FPM的配置不匹配。雖然完整的配置文件未提供,但關(guān)鍵部分已能指出問題所在。核心問題在于Nginx的location塊配置,它負(fù)責(zé)將請求路由到正確的處理程序。錯(cuò)誤的配置導(dǎo)致Nginx無法將PHP請求正確傳遞給PHP-FPM。

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

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

server {     listen 8088; # 監(jiān)聽端口,根據(jù)實(shí)際情況調(diào)整     server_name www.h5fiction1.com;     root /path/to/your/project/public; # 請?zhí)鎿Q為你的項(xiàng)目public目錄的絕對路徑      location / {         try_files $uri $uri/ /index.php?$args; # 嘗試尋找文件或目錄,否則轉(zhuǎn)發(fā)到index.php     }      location ~ .php$ {         include snippets/fastcgi-php.conf; # 包含fastcgi-php配置片段         fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 或你的php-fpm socket路徑     } }

關(guān)鍵解釋:

  • listen 8088;: 監(jiān)聽端口,請根據(jù)你的實(shí)際情況修改。
  • root /path/to/your/project/public;: 至關(guān)重要! 請將/path/to/your/project/public替換為你的PHP項(xiàng)目public目錄的絕對路徑。這是Nginx服務(wù)器查找文件的基礎(chǔ)路徑。
  • try_files $uri $uri/ /index.php?$args;: 這是一個(gè)更簡潔高效的配置,它首先嘗試查找$uri指定的文件或目錄。如果找不到,則嘗試查找$uri/(添加斜杠,用于目錄)。如果仍然找不到,則將請求轉(zhuǎn)發(fā)到index.php,并保留原始請求參數(shù)$args。
  • include snippets/fastcgi-php.conf;: 包含預(yù)定義的FastCGI參數(shù)配置,簡化配置過程。這個(gè)文件通常位于Nginx的安裝目錄下。
  • fastcgi_pass unix:/run/php/php8.1-fpm.sock;: 指定PHP-FPM的socket路徑。 請根據(jù)你的PHP-FPM安裝和配置修改此路徑。 你可能需要使用tcp連接,例如fastcgi_pass 127.0.0.1:9000;,但unix socket通常效率更高。

其他注意事項(xiàng):

  • 確保PHP-FPM服務(wù)已啟動(dòng)。 使用systemctl status php8.1-fpm (或你的PHP版本) 檢查狀態(tài)。
  • 檢查root指令指向的路徑是否正確且可訪問。 使用ls -l /path/to/your/project/public 驗(yàn)證路徑是否存在。
  • 檢查PHP-FPM的配置文件,確保socket路徑與Nginx配置一致。
  • 搜索關(guān)鍵詞“nginx php-fpm 配置”或“tp6 nginx fastcgi”可以找到更多相關(guān)信息。

此配置假設(shè)你的PHP-FPM使用的是Unix socket。如果使用的是TCP連接,請相應(yīng)修改fastcgi_pass指令。 仔細(xì)檢查所有路徑和參數(shù),確保它們與你的項(xiàng)目結(jié)構(gòu)和PHP-FPM配置完全匹配。 如果問題仍然存在,請?zhí)峁┠愕耐暾鸑ginx和PHP-FPM配置文件以便進(jìn)一步診斷。

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