题
我读过有关APC,它加快了多个php文件网站。所以我有这个特定项目在PHP与许多文件和我发现require_once和分析的唯一一类的定义(而不执行他们)需要最多的时间。
所以我已经安装APC在我CentOS5服务器。我移动了apc.php 我webserver和它显示
Hits: 1 (50.0%)
Misses: 1 (50.0%)
Cached Files 1 (281.1 KBytes)
我可以去网站,并改变子上apc.php 仍然显示出只有一个缓存文件?
在phpinfo()它表明:
APC支持启用
我不知道该怎么做。是APC的工作(如phpinfo()最高审计机关)或是不是?只有一个缓存文件并不多后,一些网页浏览我的网站。
并进一步更多如何诊断错误,并确保APC的作品?我浏览了
apc。mmap_file_mask/tmp/apc。QnLqNf/tmp/apc。QnLqNf
Directory/tmp但我没有任何文件的apc有像它指出在phpinfo应该发生。
请帮我查一下如果APC工作,如果不是,什么可能是一个问题。
解决方案
APC 可以通过两种方式使用:
- 作为操作码缓存。您已启用支持,因此该功能有效;和
- 作为通用缓存。你必须明确地使用 应用程序编程接口 为了这。
(1)主要效益。它通过存储“编译”脚本的操作码结果来减少脚本执行时间。
至于它的工作原理,从 安装说明:
笔记: 在Windows上,APC需要一个存在的临时路径,并由Web服务器写作。它检查了该顺序中的TMP,TEMP,用户填充环境变量,并在设置的情况下最终尝试Windows目录。
因此,您在 CentOS 上不需要它(或看到任何活动)。
话虽如此,require/include 比 require_once/include_once/autoload 更好,但只有当您对数百个文件执行此操作时才重要。
其他提示
是您的网站基本上是一个PHP文件,然后包括或需要其他文件?这可以注册为一个单一的文件。此外,据我所知,条件包括/需要逻辑如预期尽管这可能只是道听途说可能不缓存!
你检查THR日志文件?看看/var/log/apache2/error.log或但其分发下命名的。
另外,尽量使2-3 PHP文件,点thebrowser他们,然后检查有多少PHP文件由APC缓存中..
不确定APC,但我建议eAccelerator在( http://eaccelerator.net/ )。我前一段时间进行了测试,并确实已做出了区别。
proceses之间APC实际上犯规共享高速缓存中。 尝试配置您的PHP进程叉童车,让法师PHP进程保持运行。
http://www.litespeedtech.com/support/forum/ showthread.phpΔT= 3761
“APC不很好用PHP suEXEC的工作,因为每个PHP进程将使用自己的高速缓冲存储器,而不是共享。
您应该尝试eAccelerator在+的/ dev / shm的,如果你需要使用PHP suEXEC的。“
以及得到同样的问题,似乎PHP suEXEC的+ APC是问题