我怎么知道是否启用了任何PHP缓存?

时间:2010-12-09 00:05:53

标签: php caching apc

我曾经认为缓存非常难以安装所以我从来没有这样做过......在阅读了APC之后,它似乎很容易安装。我一直认为我必须修改我的应用程序中的许多PHP代码才能使用它.l /。

无论如何,我想安装APC。我可以使用phpinfo()并注意它没有在页面上列出,所以它没有安装。这是否也显示在那里的各种其他缓存系统?如果我已经安装了另一个缓存系统,我不想安装APC,因为我不确定它是否会导致冲突。主机会自动为您安装这些吗?

检查是否启用了任何类型的缓存的步骤是什么?

4 个答案:

答案 0 :(得分:65)

以编程方式检查:

if(extension_loaded('apc') && ini_get('apc.enabled'))
{
    echo "APC enabled!";
}

注意:从版本5.5开始,PHP现在包含一个操作码缓存/优化器(虽然默认情况下已禁用)。如果您仍想运行APC,则会在评论中提及@alcohol的APCu扩展名。如果您使用的是此扩展程序,则需要将 extension_loaded('apc')替换为 extension_loaded('apc u ')。或者您可以从命令行验证它:

phpX.Y -i | grep apcu

确保您使用的是Web服务器使用的相同PHP二进制文件。

答案 1 :(得分:12)

任何已安装的缓存扩展都将列在您的phpinfo()文件中;它们应该被列为“配置命令”框中的一个参数(例如-enable-apc),并且应该在页面的某个位置有自己的部分。

两个最流行的PHP缓存模块是APC和Memcache。

答案 2 :(得分:0)

我认为通常,PHP的大多数缓存功能都是扩展的形式,这些应该出现在phpinfo()调用中(尽管你必须识别它们)。

你会发现一些用PHP编写的,可以缓存页面加载,尤其是。当该内容是从数据库或其他Web请求等生成的时候,但这些内容通常需要知道所述库,并且需要您修改代码。

它还取决于您正在寻找什么类型的缓存,因为各种扩展和程序执行不同的任务。虽然APC缓存您的半编译/解释代码以提高性能,但诸如memcache(也推荐)之类的东西旨在减少您可能正在使用的任何数据库功能的负载。

就个人而言,我会查看您需要的功能,并且旨在安装它 - 除非它当然已经存在。

答案 3 :(得分:0)

对于那些正在使用 APCU(它是 APC 的替代品)

只需在命令行中运行:

php -r "var_dump(function_exists('apcu_enabled') && apcu_enabled());"