我读过有关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. 作为操作码缓存。您已启用支持,因此该功能有效;和
  2. 作为通用缓存。你必须明确地使用 应用程序编程接口 为了这。

(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进程保持运行。

请参阅:如何下的FastCGI运行时共享多个PHP进程之间APC缓存?

在APC3.1.5dev分支, 一个新的选项是介绍 让你禁用的操作码缓存。 这似乎是关闭的默认。

尝试加入这个给你APC配置文件:

apc.enable_opcode_cache=1

http://www.litespeedtech.com/support/forum/ showthread.phpΔT= 3761

“APC不很好用PHP suEXEC的工作,因为每个PHP进程将使用自己的高速缓冲存储器,而不是共享。

您应该尝试eAccelerator在+的/ dev / shm的,如果你需要使用PHP suEXEC的。“

以及得到同样的问题,似乎PHP suEXEC的+ APC是问题

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top