Question

J'utilise APC pour mettre en cache les variables utilisateur (avec les commandes apc_store / apc_fetch). J'ai également activé APC pour la CLI avec l'option "apc.enable_cli = 1". Cependant, la version CLI de PHP semble accéder à un cache APC différent de celui utilisé par Apache.

Est-il possible de configurer APC pour utiliser le même cache pour les invocations CLI et Web?

Était-ce utile?

La solution

Pas possible. Le seul moyen d'accomplir quelque chose comme ce que vous demandez est d'utiliser quelque chose comme memcacheD. Ou exécutez ce dont vous avez besoin pour utiliser votre serveur Web. Qu'est-ce qui exécute l'interface de ligne de commande que vous ne pouvez pas exécuter via un script Web avec une tâche cron?

Autres conseils

Vous pouvez utiliser shm. Cette technologie donne accès à la mémoire Unix Shared. Vous pouvez mettre une variable dans shm, puis dans un autre script, même dans une autre langue, vous pouvez obtenir les variables partagées.

shm_put_var et shm_get_var.

C'est plus lent que APC, mais c'est plus rapide que memcached, redis, etc.

J'espère que cela vous aidera et je suis désolé pour mon anglais ....

appelez votre CLI en tant que CGI /path-to/cgi-sys/php5.cgi /home/name/crons/engine.php

vous auriez besoin d’un serveur Web écrit en php - le cache APC n’est partagé que par des processus fils fourchis. Si vous avez un serveur Web php, vous pouvez démarrer un cli maître, init apc, fork et charger / exécuter le serveur web dans un processus enfant, et créer et exécuter votre script php cli dans un autre. Une sorte de bidouille, hein. Fork et require (), je ne pense pas que le cache apc survivrait à un exec ()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top