2016-10-14 54 views
0

我有一个PHP脚本,它会清除APC。 脚本工作正常,当我用浏览器打开它,但是当我从命令行运行该文件,它不清除缓存。apc_clear_cache不是在命令行工作在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"); 
} 
?> 

我缺少什么或者做错了吗?

+2

我想你也应该发布其清除缓存代码 –

+0

@JakubJankowski:添加了代码。 – kadamb

+0

我对PHP不太熟悉,但也许它与权限有关?从命令行运行文件时是否显示错误? –

回答

1

您可以通过命令行不清晰APC缓存,因为你不打你的Web服务器的同一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

+1

我确实使用了: 卷曲-s 127.0.0.1/clear_cache.php>的/ dev/null的& 和php文件写的代码 – kadamb

相关问题