我正在使用PHP的APC模块的用户缓存。我使用cron作业来调用更新变量的脚本。当我通过浏览器运行脚本时,一切正常。但是,当我通过命令行运行脚本时,它不能存储或检索变量。我记得在某处看到APC将变量存储在Apache进程中。使用命令行,我直接运行脚本(没有Apache),因此APC用户缓存不起作用。
我找不到让APC与命令行一起工作的方法(apc.enable_cli
不起作用)。因此,我想找到一种通过命令行运行PHP脚本的方法,就像Apache调用它一样。脚本不在文档根目录中,因此我无法使用本地浏览器。如何使用命令行使Apache运行PHP脚本?
我对cron的看法是这样的:
0 * * * * /path/to/php /path/to/script.php
答案 0 :(得分:3)
使用php-cli运行php,你将永远无法通过mod_php获得与Apache中使用的相同的APC缓存。这是按设计。
使用apc.enable_cli
时,您只需激活另一个APC缓存,用于脚本的生命周期。
因此,APC不是存储变量的正确位置,因为它不是像数据库或密钥/值存储那样的共享存储。
例如,你在how to empty a drupal cache set on APC while running in cli mode上的drupal.org问题上有一个很长的线程,这通常意味着一个两步模式,你在共享存储上存储一个mod_php版本可以读取的指令,没有直接访问。
我不知道在命令行模式下运行mod_php的方法。
答案 1 :(得分:0)
也许你应该使用php-cgi版本。 当您使用终端运行php时,您使用的是php cli版本,但它可以拥有除php-cgi之外的其他设置。