Ubuntu下Nginx部署PHP项目返回404错误,如何解决?

在Ubuntu系统中使用Nginx部署PHP项目时,经常会遇到令人困扰的404错误。本文将通过一个案例分析,讲解导致此类错误的常见原因,并提供具体的解决方案。

问题描述: 用户尝试在Ubuntu系统上,使用Nginx在8088端口部署PHP项目,修改Nginx配置文件后仍然无法访问,所有接口均返回404错误。问题根源在于Nginx配置文件错误,导致Nginx无法正确将请求转发到PHP-FPM处理。

错误原因及解决方案:

主要问题在于Nginx配置文件,特别是location块的配置。配置文件中可能存在以下问题:

  1. 端口监听错误: 配置文件监听端口可能与实际启动端口不一致(例如配置文件监听80端口,而实际启动在8088端口)。
  2. 路径错误: root指令指向的路径可能是Windows路径格式,在Ubuntu系统中无效。需要将其修改为正确的Linux路径。
  3. location块配置不完整: location块的配置可能不完整或不正确,导致Nginx无法正确处理PHP请求。

以下是一个更完善的Nginx配置文件示例,假设PHP-FPM监听在9000端口:

server {
    listen       8088; # 监听8088端口
    server_name  www.h5fiction1.com;
    root   /var/www/h5_fiction_1/public; # 正确的Linux路径

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

此配置文件修正了端口号和路径,并简化了location块配置,使用try_files指令更有效

地处理请求。 请根据您的实际项目路径和PHP-FPM监听端口进行修改。 确保PHP-FPM服务已正确安装和启动。 修改配置文件后,记得重启Nginx服务使配置生效。 搜索关键词“tp6 nginx fastcgi”可以找到更多相关配置示例和教程。