11

我正在使用APC缓存用户变量(使用 apc_store/apc_fetch 命令)。我还使用选项“apc.enable_cli = 1”为 CLI 启用了 APC。但是,PHP 的 CLI 版本似乎访问了与 Apache 使用的版本不同的 APC 缓存。

是否可以将 APC 配置为对 CLI 和 Web 调用使用相同的缓存?

4

4 回答 4

11

不可能.. 完成您所要求的事情的唯一方法是使用 memcacheD 之类的东西。或者运行你需要通过你的网络服务器运行的东西。什么正在运行的 CLI 不能通过带有 cronjob 的 Web 脚本运行?

于 2009-01-13T21:44:41.763 回答
4

您可以使用 shm。该技术可用于访问 Unix 共享内存。您可以将一些变量放在 shm 中,然后在另一个脚本中,甚至用另一种语言编写,您可以获得共享变量。

shm_put_var 和 shm_get_var。

它比 APC 慢,但比 memcached、redis 等要快。

我希望它会帮助你,我很抱歉我的英语......

于 2012-12-06T19:59:33.360 回答
1

将您的 CLI 称为 CGI /path-to/cgi-sys/php5.cgi /home/name/crons/engine.php

于 2009-07-30T17:29:00.487 回答
0

您需要一个用 php 编写的 Web 服务器——APC 缓存仅由分叉的子进程共享。如果你有一个 php 网络服务器,你可以启动一个主 cli,初始化 apc,在一个子进程中 fork 和加载/运行 web 服务器,并在另一个子进程中 fork 和运行你的 php cli 脚本。有点恶心,呵呵。fork 和 require(),我认为 apc 缓存不会在 exec() 中存活

于 2014-12-02T00:28:18.293 回答