如何解決在Ubuntu上通過Nginx在8088端口部署ThinkPHP 6項目時遇到的404錯誤?

如何解決在Ubuntu上通過Nginx在8088端口部署ThinkPHP 6項目時遇到的404錯誤?

ubuntu系統nginx部署Thinkphp 6項目,8088端口404錯誤排查

在Ubuntu上使用Nginx部署PHP項目時,特別是監聽非標準端口(如8088)時,常遇到404錯誤。本文將詳細分析在Ubuntu上通過Nginx在8088端口部署thinkphp 6項目時遇到的404問題,并提供解決方案。

問題描述

在Ubuntu系統上,使用Nginx將ThinkPHP 6項目部署到8088端口,訪問任何接口public目錄下的文件都返回404錯誤。阿里云安全組已放行8088端口。

Nginx配置文件

conf.d下的配置文件 (xxx.conf):

server {     listen 8088;     server_name  你的服務器IP地址; # 請替換為你的服務器IP      root /path/to/your/project/public; # 請替換為你的項目public目錄路徑     index index.php index.html index.htm;      location / {         try_files $uri $uri/ /index.php?$args; # 簡化try_files指令     }      location ~ .php$ {         try_files $uri =404;         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 請檢查php-fpm socket路徑是否正確         fastcgi_index index.php;         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 使用標準參數名         include fastcgi_params;     } }

nginx.conf文件 (部分關鍵配置):

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

user www-data; worker_processes auto; # ... other configurations ... include /etc/nginx/conf.d/*.conf; # ... other configurations ...

解決方案

  1. 配置文件語法檢查: 使用 nginx -t xxx.conf 檢查配置文件語法錯誤。如有錯誤,修改后重新運行命令。 然后執行 systemctl reload nginx 或 service nginx reload 重啟Nginx服務。

  2. 本地測試: 在服務器上使用 cURL 127.0.0.1:8088 測試是否可以訪問。如果可以訪問,則說明Nginx配置基本正確,問題可能出在服務器外部網絡配置或防火墻上。

  3. 網絡配置及防火墻:

    • 防火墻: 確認Ubuntu防火墻 (例如UFW) 是否允許8088端口的訪問。可以使用 sudo ufw allow 8088 允許訪問,然后 sudo ufw status 查看狀態。
    • 阿里云安全組: 再次仔細檢查阿里云安全組規則,確保8088端口的入方向規則已正確配置,并允許你的客戶端IP地址訪問。
  4. php-fpm socket路徑: 確保 /var/run/php/php7.4-fpm.sock 路徑正確,與php-fpm的配置一致。 檢查php-fpm服務是否正常運行。

  5. 權限問題: 檢查Nginx用戶 (www-data) 是否對項目目錄及其文件具有讀執行權限。

  6. ThinkPHP 6路由配置: 檢查ThinkPHP 6項目的路由配置是否正確,確保能正確處理請求。

  7. 日志檢查: 檢查Nginx錯誤日志 /var/log/nginx/Error.log ,查看是否有更詳細的錯誤信息。

如果以上步驟仍無法解決問題,請提供以下信息以便進一步排查:

  • 服務器操作系統版本
  • Nginx版本
  • PHP版本
  • php-fpm配置
  • ThinkPHP 6版本
  • 完整的Nginx錯誤日志內容

通過系統地檢查以上各個方面,你應該能夠找到并解決導致404錯誤的根本原因。

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