我正在使用CentOS 5在我的VPS上运行PHP 5.3.4,Apache 2.0.63和APC 3.1.7。
当我打开apc.php并进入系统caching条目标签,它告诉我caching中唯一的文件是apc.php。 我已经访问了同一目录中的多个其他文件,但似乎他们没有得到caching。
我玩过apc_store和apc_fetch 。 我可以从相同的请求存储和获取variables,但不能跨多个请求。
我搜遍了整个networking,没有任何帮助我的东西。 当有人声称在APC 3.1.6中造成这个问题时,我以为我曾经想到过。 我下载了3.1.7,并从源头上构build…没有任何改进。 我仍然有同样的问题。 我已经多次重启httpd服务,但没有成功。
任何build议什么尝试和什么可能是错的?
你用的是mod_fcgid吗? 如果是的话,不要。 mod_fcgid不支持PHP的子产卵function,所以如果有多个请求,它会产生一个新的PHP,并且由mod_fcgid产生的每个PHP都将拥有自己的操作码caching(如果你在PHP中启用了它们,包装脚本)。
如果你使用的是mod_fastcgi,那么你需要检查mod_fastcgi是否只启动一个PHP进程,而且一个PHP进程正在启动足够的subprocess来处理你的负载。 这个博客文章是整个事件的一个很好的概要,尽pipe它是专门为使用suexec并为每个用户分别获取fastcgi进程的,但是如果这是你想要的,你需要调整它以获得整个服务器的一个fastcgi进程。
如果你使用mod_php5,那么它应该只是工作,因为APCcaching是由Apache创build的。
如果您使用的CGI没有mod_fastcgi / fcgid,那么您的PHP可执行文件会在每一个请求之后退出,并将其操作码caching与它一起。