我使用CentOS 5在我的VPS上运行PHP5.3.4、Apache2.0.63和APC 3.1.7。
当我打开apc.php并进入系统缓存条目选项卡时,它告诉我缓存中唯一的文件是apc.php。我已经访问了同一目录中的多个其他文件,但它们似乎仍然没有被缓存。
我和apc_store和apc_fetch一起玩过。我可以从同一个请求中存储和获取变量,但不能跨多个请求。
我在网上到处搜索,没有发现任何帮助我的东西。我以为有一次,有人说,APC 3.1.6中的A引起了这个问题,我以为我已经搞清楚了。我下载了3.1.7并通过source...no改进构建了它。我还是有同样的问题。我已多次重新启动httpd服务,但没有成功。
有什么建议,应该尝试什么,什么可能是错误的?
发布于 2011-02-08 19:51:58
你在用mod_fcgid吗?如果是的话,请不要。mod_fcgid不支持PHP的子生成功能,因此如果有多个请求,它就会生成一个新的PHP,而mod_fcgid生成的每个PHP都会有自己的操作码缓存(如果在PHP的包装脚本中启用了它们,还有一堆无用的子程序)。
如果使用mod_fastcgi,则需要检查mod_fastcgi只启动一个PHP进程,以及一个PHP进程是否启动了足够多的子进程来处理负载。这篇博客文章是一个很好的例子,虽然它专门为每个用户使用suexec和获取单独的快速get进程,但是如果您想要的话,您需要对它进行调整,以便为整个服务器获得一个快速get进程。
如果您使用的是mod_php5,那么它应该可以工作,因为APC缓存是由apache创建的。
如果您使用的CGI没有mod_ executable /fcgid,那么您的PHP可执行文件在每次请求后都会退出,并带走它的操作码缓存。
https://serverfault.com/questions/232857
复制相似问题