使用命令行运行PHP脚本,就像Apache调用它一样

时间:2014-05-23 06:04:54

标签: php apache cron apc

我正在使用PHP的APC模块的用户缓存。我使用cron作业来调用更新变量的脚本。当我通过浏览器运行脚本时,一切正常。但是,当我通过命令行运行脚本时,它不能存储或检索变量。我记得在某处看到APC将变量存储在Apache进程中。使用命令行,我直接运行脚本(没有Apache),因此APC用户缓存不起作用。

我找不到让APC与命令行一起工作的方法(apc.enable_cli不起作用)。因此,我想找到一种通过命令行运行PHP脚本的方法,就像Apache调用它一样。脚本不在文档根目录中,因此我无法使用本地浏览器。如何使用命令行使Apache运行PHP脚本?

我对cron的看法是这样的:

0 * * * * /path/to/php /path/to/script.php

2 个答案:

答案 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之外的其他设置。