apc_clear_cache 在 php 中无法从命令行运行
apc_clear_cache not working from command line in php
我有一个 php 脚本可以清除 apc。
该脚本工作正常,当我使用浏览器打开它时,但是当我从命令行 运行 该文件时,它没有清除缓存。
我检查了 apc.enable_cli 设置,它也处于打开状态(查看屏幕截图)。
这是我的 php-code
<?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");
}
?>
我错过了什么或做错了什么?
您无法从命令行清除 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
我有一个 php 脚本可以清除 apc。 该脚本工作正常,当我使用浏览器打开它时,但是当我从命令行 运行 该文件时,它没有清除缓存。
我检查了 apc.enable_cli 设置,它也处于打开状态(查看屏幕截图)。
这是我的 php-code
<?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");
}
?>
我错过了什么或做错了什么?
您无法从命令行清除 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