PHP:在命令行CLI脚本/Cron脚本中禁用APC模块
时间:2020-01-09 10:45:55 来源:igfitidea点击:
我开发了一个PHP应用程序,并在LAMP上运行。
我在服务器上安装了APC。
APC是一个免费,开放且强大的框架,用于缓存和优化PHP中间代码。
基于APC的缓存非常适合我的网站,但是由于缓存,我的cron作业和php cli脚本无法获取正确的数据。
如何在Linux或者Unix之类的操作系统下的命令行(php-cli)上为所有cron作业禁用APC模块?
该错误可以通过应用稳定的APC补丁来修复。
APC代码被积极维护。
因此,请尝试更新到最新的稳定版本。
如果您直接从脚本中使用" php-cli"," php5-cli"或者" php"二进制文件,请尝试传递-d选项。
此选项可以定义和覆盖启用APC的INI条目。
可以使用以下grep命令行语法找到确切的条目:
### note php.ini path Jan be differnt under Unix or linux ### grep --color -i enabled /etc/php.d/php.ini
输出示例:
apc.enabled=1
使用以下语法定义值为0(禁用)的apc.enabled条目:
/usr/bin/php -d apc.enabled=0 my.cron.php /usr/bin/php -d apc.enabled=0 /path/to/myshelljob.php /usr/bin/php-cli -d apc.enabled=0 /path/to/myshelljob.php
或者,您也可以像oses一样在Linux或者Unix下为cron作业创建一个小的Shell脚本包装:
#!/bin/bash # Purpose - Create search index file for AWS search web service for our db # Author: theitroad <www.theitroad.local> # ----------------------------------------------------------------------- _php="/usr/bin/php" _nice="/bin/nice" _phpargs="-d apc.enabled=0" _base="/opt/sysadmin/aws" _tmp="$_base/tmp" [[ ! -d "$_tmp/$i" ]] && /bin/mkdir "$_tmp/$i" ## Run php with APC disabled ### $_nice -n 3 $_php $_phpargs -f $_base/php/createsearchindex.php