在php CGI环境中使用php-apcu(https://github.com/krakjoe/apcu)扩展名(不是apc)时,来自apc_store
的存储数据为空。
任何人都有过如何解决这个问题的经验?
示例PHP文件: test-apc.php
<?php
$k = 'test';
if(isset($_GET['get'])) {
$result = apc_fetch($k);
echo "Read entry '$k': $result";
} else if(isset($_GET['clear'])) {
echo "Clear entry '$k'";
apc_clear_cache('user');
} else {
apc_store($k, "HelloWord");
echo "Write entry '$k' set";
}
print_r(apc_cache_info('user'));
?>
重现的步骤:
http://server/test-apc.php
致电apc_store
http://server/test-apc.php?get
apc_fetch
以接收存储的数据
醇>
BTW: apc_cache_info('user')在第一次请求时正确显示,第二次为空
相关软件包(操作系统:Debian 3.2.63):
答案 0 :(得分:1)
模块php-apcu与CGI / fcgid不完全兼容。
可能的原因: CGI / fcgid在每个HTTP REQUEST上执行php解释器作为新实例。所以apcu / apc无法恢复用户缓存。
模块 mod-fastcgi ( Debian的非免费软件包)和 php5-fpm 可以提供补救措施。 它使用不同的技术来管理流程。
http://php-fpm.org/wiki/(at atm - 2015-09-02)