ubuntu nginx 部署 php 项目时遇到 404 错误如何解决?
在 ubuntu 系统下使用 nginx 部署 php 项目,通常需要进行一些配置。如果您遇到了所有接口都返回 404 错误的情况,可能是配置中存在问题。
检查配置文件
仔细检查您的 conf.d 中的配置是否正确。通常,此文件应包含以下内容:
立即学习“PHP免费学习笔记(深入)”;
server { listen 80; server_name www.example.com; root /var/www/html; location / { index index.html index.htm index.php; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } location ~ .php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #下面两句是给fastcgi权限,可以支挿?s=/module/controller/action的url访问模式 fastcgi_split_path_info ^((?u).+.php)(/?.+)$; fastcgi_param script_filename $document_root$fastcgi_script_name; #下面两句才能真正支持 index.php/index/index/index的pathinfo模式 fastcgi_param path_info $fastcgi_path_info; fastcgi_param path_translated $document_root$fastcgi_path_info; include fastcgi_params; } }
重点检查以下部分:
- server_name:确保此字段设置为您的域或服务器 ip 地址。
- root:指定项目文档根目录的路径。
- fastcgi_pass:指定 php-fpm 正在监听的地址。
- fastcgi_index:指定 php-fpm 应查找的索引文件。
- rewrite 规则:此规则允许以 index.php 开头的 url 访问项目。
如果以上配置正确,请确保 php-fpm 正在运行,并且端口 9000 已开放。您可以使用以下命令检查:
sudo systemctl status php7.4-fpm
如果仍然遇到问题,请检查以下内容:
- php 版本:确保已安装与项目兼容的 php 版本。
- 文件权限:确保 php-fpm 进程可以访问项目文件。
- 防火墙:确保端口 80 未被防火墙阻止。
如果您通过了所有这些检查,但仍然遇到 404 错误,请尝试重新启动 nginx 和 php-fpm 服务:
sudo systemctl restart nginx sudo systemctl restart php7.4-fpm