ThinkPHP 5.1 部署后接口访问 404,通常是由于 Nginx 配置不正确导致的。ThinkPHP 5.1 使用了 URL 重写规则(如 index.php
作为入口文件),而 Nginx 默认不支持 .htaccess
文件,因此需要手动配置 Nginx 的 URL 重写规则。
以下是解决 ThinkPHP 5.1 部署后接口访问 404 的 Nginx 配置步骤:
1. 确认项目路径
确保你的项目部署在正确的路径下。例如,假设项目部署在 /var/www/your-project
目录下。
2. Nginx 配置文件
找到你的 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/default
),并修改或添加以下配置:
3. 关键配置说明
root
: 指向项目的public
目录,因为 ThinkPHP 5.1 的入口文件是public/index.php
。try_files
: 用于 URL 重写,将所有请求重定向到index.php
。fastcgi_pass
: 确保与你的 PHP-FPM 配置一致。可以通过以下命令找到 PHP-FPM 的 socket 文件路径:
-
或者查看 PHP-FPM 配置文件(如
/etc/php/7.4/fpm/pool.d/www.conf
)。
4. 检查 PHP-FPM 配置
确保 PHP-FPM 已正确安装并运行。可以通过以下命令检查:
如果未启动,可以使用以下命令启动:
5. 重启 Nginx
修改完 Nginx 配置后,重启 Nginx 服务以使配置生效:
6. 检查文件权限
确保项目文件和目录的权限正确。通常需要将 runtime
目录设置为可写:
7. 测试访问
在浏览器中访问你的域名或 IP 地址,例如:
如果配置正确,应该可以正常访问 ThinkPHP 5.1 项目。
8. 常见问题排查
- 404 错误:
- 检查
root
是否指向public
目录。 - 检查
try_files
配置是否正确。 - 检查 PHP-FPM 是否正常运行。
- 502 错误:
- 检查
fastcgi_pass
配置是否正确。 - 检查 PHP-FPM 是否正常运行。
- 403 错误:
- 检查文件和目录权限是否正确。
9. 示例完整配置
以下是一个完整的 Nginx 配置示例:
总结
通过以上步骤配置 Nginx,应该可以解决 ThinkPHP 5.1 部署后接口访问 404 的问题。如果仍然有问题,可以提供更多错误日志或配置信息,我会进一步帮助你排查问题!