ThinkPHP 5.x对 PHP版本的要求及注意点
1.ThinkPHP 5.x
ThinkPHP 5.0
- 最低:PHP 5.4
- 推荐:PHP 5.6 / 7.0
- ❌ 已停止维护,不建议任何新生产使用
ThinkPHP 5.1(LTS)
- 最低:PHP 5.6
- 推荐:PHP 7.2 / 7.3 / 7.4
- ❌ 不建议 PHP 8.x(存在大量兼容问题)
生产结论一句话:
👉 TP 5.x 生产 = 5.1 + PHP 7.4
2.ThinkPHP 5.x 的架构特征
2.1 核心设计特点
- 仍是 “传统 PHP Web 框架”
- 强依赖 PATHINFO
- 自动加载、容器、事件系统 不如 6.x 纯净
- 框架层逻辑更“厚”,单请求开销略大于 6.x
2.2 5.x 与 6.x 的关键差别
| 维度 | ThinkPHP 5.1 | ThinkPHP 6.x |
|---|---|---|
| PHP 最佳版本 | 7.2–7.4 | 7.4 |
| PATHINFO | 强依赖 | 不依赖 |
| 入口规范 | 宽松 | 强制 public |
| Composer | 可选 | 强制 |
| 中间件 | 半成品 | 完整 |
| 高并发友好度 | 中 | 高 |
所以:
TP5 能跑高并发,但你要帮它“减负”
3.ThinkPHP 5.x 的标准生产部署
3.1 目录结构(生产必须这样)
1 | /var/www/tp5 |
生产铁律:
- Nginx / OpenResty
root→public runtime/必须归 PHP-FPM 用户
注意:运行权限问题
4.OpenResty + 多 PHP-FPM
4.1 整体架构
flowchart LR
Client --> OpenResty
OpenResty --> FPM_A
OpenResty --> FPM_B
OpenResty --> FPM_C
FPM_A --> TP5
FPM_B --> TP5
FPM_C --> TP5
TP5 不怕多 FPM,它怕的是:
- 日志
- Trace
- IO
- 单池阻塞
5.OpenResty 对 ThinkPHP 5.x配置
5.1 upstream(多 PHP-FPM)
1 | upstream php_tp5 { |
5.2 server 配置(重点在 PATHINFO)
1 | server { |
这段 rewrite 是 TP5 的灵魂,没它,路由 404 会像雪崩一样来
6.PHP-FPM 多实例
6.1 为什么 TP5 更需要多池
- 单请求内初始化逻辑多
- ORM、Config、Log 都偏重
- worker 被慢 SQL 卡住非常常见
6.2 示例
1 | [tp5_api] |
1 | [tp5_admin] |
1 | [tp5_task] |
7. ThinkPHP 5.x 高并发
7.1 必须关的东西
APP_DEBUG = falseAPP_TRACE = false- SQL 日志
- 请求日志(除 error)
7.2 OPcache(比 6.x 更重要)
1 | opcache.enable=1 |
TP5 不开 OPcache,性能直接腰斩。