25 votos

PHP APC Potencial de Caché Slam Prevenidas para la Clave

Estoy recibiendo este error al intentar usar apc_store(). Busqué en google y vi que este era APC bombas de tiempo bug y vio algunas de las correcciones que sugiere que se añada apc.slam_defense = Off; a php.ini.

Necesito saber si esto ha ocurrido debido a un error de programación, y si sí, cómo solucionarlo.

Este es el segmento de código:

if ($data = apc_fetch("foo")) {
    $an_array = $data;
} else {
    /* couple of lines */

    apc_store("circles", $an_array); // This is where I get the error
}

Esta secuencia de comandos se llama con frecuencia en mi sistema implementado.

Espero que haya proporcionado suficiente información

Gracias de antemano

28voto

rynop Puntos 7818

Configuración de apc.write_lock = 1 y apc.slam_defense = 0 en php.ini debería solucionar el problema.

15voto

Serty Oan Puntos 1350

Desde APC 3.1.3, parece que hay un bug (http://pecl.php.net/bugs/bug.php?id=16814), advertencia cuando se slam de la defensa es en y cuando intenta escribir una clave que ya existe.
No parece ser fijado todavía.

5voto

Sidhannowe Puntos 186

Últimas versiones de APC parece resolver el problema, puede actualizar APC con PECL

pecl upgrade apc

2voto

Layke Puntos 10216

Estas instrucciones varían en función de cómo PHP está instalado.

Pero, en su /etc/php5/cgi/conf.d/extensions.ini archivo (o apc.inio php.ini) después de haber agregado el extension=apc.so puede deshabilitar el slam de la defensa

Por ejemplo, esta es mi configuración que yo uso.

[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

1voto

Klokie Puntos 81

Esos dos parámetros sólo parecen tener efecto con APC 3.1.7 y PHP 5.3.6. Estoy usando 5.3.2 con 3.1.3p1 y aún así obtener los avisos molestos. "slam_defense" no se mostrarán en la salida de phpinfo().

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X