¿Cómo puedo hacer que PHP use la misma caché APC cuando se invoca en la CLI y en la web?
-
22-07-2019 - |
Pregunta
Estoy usando APC para almacenar en caché las variables de usuario (con los comandos apc_store / apc_fetch). También he habilitado APC para la CLI con la opción " apc.enable_cli = 1 " ;. Sin embargo, la versión CLI de PHP parece acceder a un caché APC diferente de la versión utilizada por Apache.
¿Es posible configurar APC para usar la misma caché para las invocaciones de CLI y web?
Solución
No es posible. La única forma de lograr algo como lo que pides es usar algo como memcacheD. O ejecute lo que necesita para ejecutar su servidor web. ¿Qué está ejecutando CLI que no puede ejecutar a través de un script web con un cronjob?
Otros consejos
Puedes usar shm. Esta tecnología permite acceder a la memoria compartida de Unix. Puede poner alguna variable en shm y luego en otro scritp, incluso programado en otro idioma puede obtener las variables compartidas.
shm_put_var y shm_get_var.
Es más lento que APC, pero es más rápido que memcached, redis, etc.
Espero que te ayude, y lo siento por mi inglés ...
llame a su CLI como CGI /path-to/cgi-sys/php5.cgi /home/name/crons/engine.php
necesitaría un servidor web escrito en php: la memoria caché de APC se comparte solo mediante procesos secundarios bifurcados. Si tuviera un servidor web php, podría iniciar un cli maestro, init apc, bifurcar y cargar / ejecutar el servidor web en un proceso secundario, y bifurcar y ejecutar su script php cli en otro. Una especie de truco asqueroso, ¿eh? Bifurcar y require (), no creo que el caché apc sobreviviera a un exec ()