我有一个Debian机器,我使用apache2(与mod_proxy)和Lighttpd(长轮询服务和静态内容)。
APC和lighttpd都运行php5。
Lighttp使用FastCGI for php5。
现在,这两个环境运行良好,但APCcaching是分开的,有没有办法告诉lighttpd和Apache使用相同的APCcaching?
我想要获得的例子:
//example.com, served by apache2: <?php apc_add('foo', 'bar'); echo apc_fetch('foo'); //output: bar ?> //polling.example.com, served by lighttpd: <?php echo apc_fetch('foo'); //output desired: bar //actual output: nothing! ?>
PS:我认为这属于服务器故障,如果没有,我会发布在Stackoverflow。
编辑 :从丹读取答案,并在stackoverflow上search,很明显,目前APCcaching不能共享,当有人需要这一点,另一个caching系统必须select(作为memcache,这比APC慢
如果考虑到SO重复,请随时closures此问题。
我不知道APCcaching是否可以在多个(FastCGI)PHP实例之间共享,但也许是memcached或类似的程序可以解决您的问题。 不过,你必须改变你的PHP脚本。
根据这个针对APC的PECL特性请求票据的信息,在同一个httpd环境中共享caching数据和多个FCGI进程之间的locking,我认为在多个httpd环境之间也是不可能的。
编辑添加:
您仍然可以从使用APC中获得一些好处。 守护进程启动之后的初始结果可能不是很好,但是随着时间的推移,每个进程的caching将变为播种和重用。 memcache和APC执行类似的function,因此他们“caching信息”,但他们的实际目的是完全不同的。 memcache是数据的键值caching,APC是代码的操作码caching。