在 CentOS 7 上开启 PHP 8.0 JIT 编译需要先通过第三方源安装 PHP 8.0,再修改 php.ini 配置 OpCache 相关参数。适用场景为 CPU 密集型任务,风险边界在于 CentOS 7 已于 2024 年 6 月 30 日停止维护,且 JIT 对 IO 密集型 Web 应用性能提升有限。
先说结论:PHP 8.0 JIT 在 CentOS 7 上可用,但需手动配置且收益视业务类型而定。
- 适合:CPU 密集型计算场景,如图像处理、复杂逻辑运算。
- 先准备:确认 CentOS 7 系统状态,添加 Remi 源安装 PHP 8.0。
- 验收:通过 php -i 确认 JIT 状态,业务日志监控无异常报错。
命令速用版
yum install -y yum-utils
yum-config-manager `--enable` remi-php80
yum install -y php php-cli php-opcache
vi /etc/php.ini为什么会这样
PHP 8.0 引入的 JIT 编译依赖 OpCache 扩展且默认关闭,CentOS 7 官方源不包含 PHP 8.0 版本。
JIT 将部分 PHP 字节码编译为机器码执行,减少解释器开销。CentOS 7 默认源最高仅支持 PHP 7.2,必须启用 Remi 等第三方仓库才能获取 PHP 8.0 安装包。
分步处理
步骤 1:安装 Remi 仓库
yum install -y yum-utils
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm步骤 2:启用 PHP 8.0 流并安装
yum-config-manager `--enable` remi-php80
yum install -y php php-cli php-opcache php-fpm步骤 3:修改配置文件
编辑 /etc/php.ini,找到 OpCache 部分,修改以下项:
opcache.enable=1
opcache.jit=1255
opcache.jit_buffer_size=256M步骤 4:重启服务
systemctl restart php-fpm怎么验证是否生效
执行命令 php -i | grep jit,查看输出是否包含 jit 支持及状态。
创建 phpinfo() 页面,搜索 JIT 字段,确认 opcache.jit 值不为 disabled。
常见坑
1. IO 密集型应用无明显提升:公开资料中没有看到可靠的量化数据证明 JIT 能显著提升 WordPress 等 IO 密集型应用速度。
2. CentOS 7 停止维护风险:CentOS 7 已于 2024 年 6 月 30 日结束生命周期,生产环境建议评估迁移计划。
3. 内存占用增加:JIT 缓冲区会占用额外内存,低配服务器需调整 jit_buffer_size 大小。
常见问题
开启 JIT 后网站会变快吗?
不一定,CPU 密集型任务可能变快,IO 密集型任务通常无明显变化。
CentOS 7 必须编译安装 PHP 吗?
不需要,通过 Remi 仓库可直接安装 RPM 包,无需源码编译。
JIT 配置错了会导致服务崩溃吗?
通常不会,配置错误会导致 JIT 不生效,PHP 会回退到普通解释模式。
参考来源
- PHP Wiki: JIT - https://wiki.php.net/jit
- Remi Repository: PHP 8.0 - https://rpms.remirepo.net/wizard/
- CentOS Wiki: CentOS-7 EOL - https://wiki.centos.org/About/Product