上php.net该文档是关于失败的原因APC写入非常参差不齐。什么样的情况下会导致调用apc_store()失败?

有大量的可用磁盘空间,而故障是参差不齐。有时候,存储操作会成功,有时候它会失败。

有帮助吗?

解决方案

出的存储器(APC分配的存储器,这是)

其他提示

有关的PHP CLI它需要与另一种选择被使能: apc.enable_cli =开

在我的情况它从一个网页浏览器中运行时使用PHP CLI执行相同的东西,当工作,但不是。

我有完全一样的情况。

我迁移使用Cron作业我的代码,使用Gearman的工人,这是通过supervisord管理。

一切打破。我永远无法得到缓存通过APC工作,不得不恢复使用filebase缓存。

最后,我想通了,我使用Cron工作时,我会经由wget的加载每个页面,而不是命令行。这种差异,意味着supervisord,这将通过命令行载入我的PHP脚本,是行不通的,因为默认情况下APC将不通过命令行工作。

在修复....

apc.enable_cli=On

此愚蠢(和关闭,由于某种原因)的错误是我的问题:

http://pecl.php.net/bugs/bug.php ?ID = 16814

有回滚到APC 3.1.2版本让APC工作。没有与APC设置摆弄在php.ini帮助(我在Mac OS 10.5,使用Apache 2,PHP 5.3)。

对我来说,这个测试脚本显示3 “trues” 为3.1.2和真/假/真为3.1.3p1

的var_dump(apc_store( '试验', '一个')); 的var_dump(apc_store( '测试', '二')); 的var_dump(apc_store( '差异', 'THR'));

http://php.net/manual/en/apc.configuration.php

在php.ini中apc.ttl和apc.user_ttl设置:

  

在零离开这意味着APC的缓存可能潜在地失效条目填满而新条目将不会被缓存。

出的拒绝对存储目录的磁盘空间或许可?

除了什么格雷格说,我要补充的是配置错误可能导致此。

如果该特定键已经存在,你正试图在TTL到期之前再次写入apc_store将失败。因此,你几乎可以忽略返回假的,因为它真的失败,但缓存仍然存在。如果要解决这个问题,开始使用apc_add代替。 http://php.net/manual/en/function.apc-add。 PHP

有在使用Ubuntu 10.04和Debian稳定安装的版本中的错误。如果在使用此版本替换软件包: http://packages.debian.org/sid/php- APC (3.1.7)它的工作原理,它应。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top