我有一个在 LAMP 上开发并运行的 PHP 应用程序。我在服务器上安装了 APC。APC 是一个免费、开放且强大的框架,用于缓存和优化 PHP 中间代码。基于 APC 的缓存对我的网站很有用,但我的 cron 作业和 php cli 脚本无法
![查看所有 UNIX 相关文章/常见问题解答](https://www.alaica.com/wp-content/uploads/linux-26.gif)
由于缓存而获取正确的数据。如何在 Linux 或类 Unix 操作系统下的命令行 (php-cli) 为我的所有 cron 作业禁用 APC 模块?
教程详情 | |
---|---|
难度级别 | 中间的 |
根权限 | 不 |
要求 | PHP/外壳 |
美东时间。阅读时间 | 2分钟 |
该错误可以通过应用稳定的 APC 补丁来修复。APC 代码得到积极维护。因此,请尝试更新到最新的稳定版本。如果您直接从脚本使用php-cli,php5-cli或二进制文件,请尝试传递选项。此选项可以定义和覆盖启用 APC 的 INI 条目。可以使用以下 grep 命令行语法找到确切的条目:php-d
### 注意Unix或Linux下php.ini路径可能不同### grep --color -ienabled /etc/php.d/php.ini
输出示例:
apc.启用=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 /路径/to/myshelljob.php
或者,您可以在 Linux 或 Unix(如 oses)下为 cron 作业创建一个小型 shell 脚本包装器:
#!/bin/bash # 目的 - 为我们的数据库的 AWS 搜索 Web 服务创建搜索索引文件 # 作者:example <www.example.com> # ----------------- -------------------------------------------------- ----- _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 " ## 在禁用 APC 的情况下运行 php ### $_nice -n 3 $_php $_phpargs -f $_base / php / createsearchindex.php