php - APC不缓存文件,但缓存用户数据

标签 php linux apc

Apc 不缓存文件,它只缓存用户数据。当我在本地主机上测试时,APC 缓存了我使用的所有文件。但它不适用于我的共享主机。这是配置问题吗?

这些是来 self 的 apc.php (APC 3.0.19) 的统计数据: apc.php stats

在上图中,APC 没有使用任何内存。 这是 phpinfo() 给我的: phpinfo() output

在本地主机上,我只访问 http://localhost/test.php . Apc 将立即缓存 localhost/test.php(类型文件)。但是在共享主机上,我看不到它缓存文件(它可以缓存变量,如果我存储但不使用文件);

    apc_add('APC TEST', '123');
    echo apc_fetch('APC TEST'); //-- it work with this code

如果我访问 test.php,我需要 Apc 缓存 test.php。

是否有配置使 APC 无法缓存文件类型或它是共享主机的限制?

最佳答案

针对您的评论“Apc 已启用,并且 apc.cache_by_default = 1;使用 CGI 设置 php,我检查了 phpinfo();”:这就是问题所在。如果您在 CGI 上运行 PHP,则在每次加载页面时都会创建一个新的 PHP 进程。由于 APC 绑定(bind)到 PHP 进程,它也会在每次访问页面时重新实例化。所以它显然没有任何数据。您的用户缓存示例仅适用,因为您在单个页面加载时存储和获取变量。

因此:APC 不能通过 CGI 使用 PHP。使用 FastCGI(它使进程保持事件状态,从而使缓存工作并且通常速度更快)。

关于php - APC不缓存文件,但缓存用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5509962/

相关文章:

php - APC 中的操作码缓存和丢失的文件

Magento 缓存 - 关于 Varnish、Redis、APC、Memcache 的困惑

PHP : apc_store doesn't work as intended

linux - TAILS 上的 OpenSSH 错误

linux - 尝试理解Linux中非shell元字符的含义

linux - 如何在linux中路由

php - 期望使用 PHPUnit 模拟对象的部分数组

php - 在 PHP 中生成任意长度的有序(加权)组合

php - fab.com 双点线是如何创建的 : css or image?

php - Symfony2 从 ssl 子域注销