Ответ 1
Начиная с APC 3.1.3, кажется, что есть ошибка (http://pecl.php.net/bugs/bug.php?id=16814), предупреждение происходит, когда защита от шлема включена и когда вы пытаетесь написать ключ, который уже существует.
Кажется, он еще не исправлен.
Я получаю эту ошибку при попытке использовать apc_store()
. Я просмотрел его и увидел, что это была ошибка APC timebomb и увидела некоторые исправления, которые предложили добавить apc.slam_defense = Off;
в php.ini.
Мне нужно знать, произошло ли это из-за ошибки программирования, и если да, то как это исправить.
Это сегмент кода:
if ($data = apc_fetch("foo")) {
$an_array = $data;
} else {
/* couple of lines */
apc_store("circles", $an_array); // This is where I get the error
}
Этот script будет часто вызываться в моей развернутой системе.
Надеюсь, я предоставил достаточно информации
Заранее спасибо
Начиная с APC 3.1.3, кажется, что есть ошибка (http://pecl.php.net/bugs/bug.php?id=16814), предупреждение происходит, когда защита от шлема включена и когда вы пытаетесь написать ключ, который уже существует.
Кажется, он еще не исправлен.
Настройка apc.write_lock = 1
и apc.slam_defense = 0
в php.ini
должна устранить проблему.
Последние версии APC, похоже, решают проблему, вы можете обновить APC с помощью PECL
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