Ubuntu Nginx部署PHP项目出现404错误如何解决?

Ubuntu Nginx部署PHP项目出现404错误如何解决?

ubuntu系统中,使用nginx部署php项目时,经常会遇到令人头疼的404错误。本文将分析一个实际案例,并提供有效的解决方案。

问题描述:

一位开发者在Ubuntu系统上使用Nginx(8088端口)部署PHP项目时,所有请求均返回404错误。即使经过长时间的配置文件修改,问题依旧存在。其提供的Nginx配置文件片段(位于conf.d目录下)存在错误,导致无法正确处理PHP请求。

问题分析与解决方案:

立即学习PHP免费学习笔记(深入)”;

问题的核心在于Nginx与PHP-FPM的交互配置。虽然未提供完整配置文件,但关键错误在于location块的配置,它未能正确将PHP请求转发到PHP-FPM处理。

以下是一个正确的Nginx配置文件示例:

server {     listen 80;     server_name www.h5fiction1.com;     root "D:/project/h5_fiction_1/public";      location / {         index index.html index.htm index.php;         try_files $uri $uri/ /index.php?$args;     }      location ~ .php$ {         fastcgi_pass 127.0.0.1:9000;         fastcgi_index index.php;         fastcgi_split_path_info ^((?U).+.php)(/?.+)$;         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;         fastcgi_param PATH_INFO $fastcgi_path_info;         fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;         include fastcgi_params;     } }

此配置中,location ~ .php$ 块定义了PHP文件的处理方式。fastcgi_pass 指向PHP-FPM监听地址和端口(通常为127.0.0.1:9000)。fastcgi_param 设置必要参数,确保Nginx正确传递请求到PHP-FPM。root 指令指定项目的public目录为根目录。location / 块中的try_files指令尝试查找文件或目录,如果找不到则将请求转发到index.php。

开发者需要检查以下几点:

  • fastcgi_pass: 确保PHP-FPM监听地址和端口正确。
  • root: 确保root 指令指向的项目public目录准确无误。
  • PHP-FPM服务: 确保PHP-FPM服务已启动并正常运行。

通过仔细检查以上配置,并根据实际项目情况调整,即可解决404错误。 搜索关键词“thinkphp6 nginx fastcgi”或类似关键词可以找到更多相关配置示例。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享