apc_store()
を使用しようとすると、このエラーが発生します。私はそれをグーグルで検索し、これがAPC時限爆弾のバグであることを確認し、php.iniにapc.slam_defense = Off;
を追加することを提案するいくつかの修正を確認しました。
プログラミングエラーが原因でこれが発生したかどうか、発生した場合は修正方法を知る必要があります。
これはコードセグメントです:
if ($data = apc_fetch("foo")) {
$an_array = $data;
} else {
/* couple of lines */
apc_store("circles", $an_array); // This is where I get the error
}
このスクリプトは、デプロイされたシステムで頻繁に呼び出されます。
十分な情報を提供できたと思います
前もって感謝します
APC 3.1.3以降、バグがあるようです( http://pecl.php.net/bugs/bug.php?id=16814 )、スラム防御がオンになると警告が表示されますすでに存在するキーを書き込もうとしたとき。
まだ修正されていないようです。
設定apc.write_lock = 1
およびapc.slam_defense = 0
in php.ini
問題を修正する必要があります。
APCの最新バージョンは問題を解決しているようです。PECLでAPCを更新できます
pecl upgrade apc
これらの手順は、PHPのインストール方法によって異なります。
ただし、/etc/php5/cgi/conf.d/extensions.ini
を追加した後のapc.ini
ファイル(またはphp.ini
、またはextension=apc.so
)で、スラム防御を無効にすることができます
たとえば、これは私が使用する構成です。
[apc]
apc.enabled=1
apc.shm_size=48M
apc.num_files_hint=10000
apc.user_entries_hint=10000
apc.max_file_size=5M
apc.stat=1
apc.enable_cli=On
apc.write_lock = 1
apc.slam_defense = 0 # <----- This is the Important Setting