apc_clear_cache无法在php的命令行中运行

时间:2016-10-14 10:49:49

标签: php command-line-interface apc

我有一个清除apc的php脚本。 当我使用浏览器打开它时,脚本工作正常,但是当我从命令行运行该文件时,它没有清除缓存。

我检查了apc.enable_cli设置,这也是打开(查看屏幕截图)。 Settings dump

这是我的php代码

<?php

if (isset($argv[1])) {
    $key = $argv[1];

    $info = apc_cache_info("user");
    foreach ($info['cache_list'] as $obj) {
        if (strstr($obj['info'], $key)) {
            apc_delete($obj['info']);
        }
    }

} else {
    apc_clear_cache("user");
}
?>

我错过了什么或做错了什么?

1 个答案:

答案 0 :(得分:1)

您无法从命令行清除APC缓存,因为您没有访问网络服务器的同一APC段。

请注意,enable_cli仅允许您在CLI环境中使用APC,但会为脚本创建一个段,并在脚本末尾销毁它。它没有使用相同的细分受众群,因为它不了解您的网络服务器。

您有两种选择:

  • 通过FastCGI调用您的脚本(见下文)
  • 使用file_get_contents()
  • 使用http://或类似名称调用网页

如果您需要访问APC数据,还可以阅读我的文章:https://www.dugwood.com/949904-php5-opcode-caching-and-memory-storage-with-apc-xcache-in-command-line-interface-cli-or-cron.html