如何配置Thinkphp在Nginx和Apache服务器下实现伪静态功能?
- 内容介绍
- 文章标签
- 相关推荐
在把刚写好的 ThinkPHP 项目迁移到线上服务器时往往会遇到一连串令人头疼的问题:先是 PHP 版本过低导致无法解析代码;再有 URL 重写功能被禁用,导致所有访问都报错 404;最终还要在不同的 Web 服务器下完成伪静态配置,手工调试几次才行。下面按痛点拆解,给你一份完整的配置教程。
痛点一这方面,PHP 版本不匹配
很多线上环境默认安装的是 PHP 5.4 或更早版本。而 ThinkPHP 5/6 至少需要 PHP 5.6+。如果你直接使用程序自带的 PHP,往往会出现语法解析错误。
# 检查当前 PHP 版本
php -v
# 若低于 5.6。请升级或安装兼容版本
yum install php-7.4 # CentOS 示例
再看痛点二,URL 重写未开启
没有启用 mod_rewrite或相应的 Nginx 配置,任何以 /index.php?s=... 的方法都会被当作普通文件请求,从而返回 404。
说到痛点三,伪静态规则不统一
不同框架、不同服务器对伪静态规则要求略有差异。下面给出 ThinkPHP 5 与 ThinkPHP 6 在 Apache 和 Nginx 下的标准配置。
在把刚写好的 ThinkPHP 项目迁移到线上服务器时往往会遇到一连串令人头疼的问题:先是 PHP 版本过低导致无法解析代码;再有 URL 重写功能被禁用,导致所有访问都报错 404;最终还要在不同的 Web 服务器下完成伪静态配置,手工调试几次才行。下面按痛点拆解,给你一份完整的配置教程。
痛点一这方面,PHP 版本不匹配
很多线上环境默认安装的是 PHP 5.4 或更早版本。而 ThinkPHP 5/6 至少需要 PHP 5.6+。如果你直接使用程序自带的 PHP,往往会出现语法解析错误。
# 检查当前 PHP 版本
php -v
# 若低于 5.6。请升级或安装兼容版本
yum install php-7.4 # CentOS 示例
再看痛点二,URL 重写未开启
没有启用 mod_rewrite或相应的 Nginx 配置,任何以 /index.php?s=... 的方法都会被当作普通文件请求,从而返回 404。
说到痛点三,伪静态规则不统一
不同框架、不同服务器对伪静态规则要求略有差异。下面给出 ThinkPHP 5 与 ThinkPHP 6 在 Apache 和 Nginx 下的标准配置。

