You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在CentOS 7.4环境下禁用PHP命令行的Opcache

解决CentOS 7.4下CLI模式禁用PHP Opcache的方法

根据你的场景——Apache以模块方式运行PHP 7.2.4(Opcache正常启用),但需要在命令行执行脚本时禁用Opcache,这里有几个可靠的解决方案:

方法1:单次执行时临时禁用(无需修改配置文件)

如果你只是偶尔需要在CLI下禁用Opcache,直接在执行脚本时通过-d参数临时覆盖配置即可:

php -d opcache.enable=0 your_script.php

这个参数会临时将opcache.enable设置为0,仅对当前这次脚本执行生效,不会影响Apache模块的PHP运行。

验证是否生效:执行php -d opcache.enable=0 -i | grep "opcache.enable",输出应该显示opcache.enable => Off => Off。

方法2:通过主php.ini的SAPI分段配置永久禁用CLI的Opcache

PHP 5.3及以上版本支持在php.ini中按SAPI(服务器应用编程接口)分段配置,这样可以让CLI和Apache模块使用不同的Opcache设置:

  1. 打开主配置文件:
vi /etc/php.ini
  1. 在文件末尾添加以下内容:
[CLI]
opcache.enable = 0
opcache.enable_cli = 0

这里opcache.enable_cli是专门控制CLI模式下Opcache的开关,双重保险确保禁用。
3. 保存退出后,验证CLI的配置:

php -i | grep "opcache.enable"

你应该会看到CLI模式下这两个选项都为Off,而Apache的phpinfo()里依然保持On。

方法3:为CLI创建独立的配置文件

如果不想修改主php.ini,也可以给CLI单独准备一个配置文件:

  1. 复制主配置文件作为CLI专用配置:
cp /etc/php.ini /etc/php-cli.ini
  1. 编辑/etc/php-cli.ini,找到opcache.enable和opcache.enable_cli的配置行,修改为:
opcache.enable = 0
opcache.enable_cli = 0
  1. 以后执行CLI脚本时,指定这个配置文件:
php -c /etc/php-cli.ini your_script.php

这种方式的好处是完全隔离CLI和Apache的PHP配置,适合需要对CLI做更多自定义设置的场景。

注意事项

  • 确保你修改的是正确的配置文件:执行php -i | grep "Loaded Configuration File"可以确认CLI加载的配置文件路径,和你看到的一致是/etc/php.ini。
  • 如果你的系统中Opcache的配置是在/etc/php.d/目录下的单独文件(比如10-opcache.ini),也可以在那个文件里添加[CLI]分段来设置,效果和修改主php.ini一样。

内容的提问来源于stack exchange,提问作者stefan nowak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:25:03