【发布时间】:2015-05-25 02:32:53
【问题描述】:
我正在使用以下软件包运行 Web 服务器; php-apc 3.1.7-1 php5-fpm 5.3.10-1ubuntu3.10
但是,我在 Ubuntu 14.04 上构建了一个新服务器,似乎 php-apc 不再可用。
因此,APC 是我巨大流量(每天 10 万次独立访问)的生命服务器
我对 PHP 的缓存机制有点困惑。 新服务器包括以下软件包: php-apc 4.0.2-2build1 php5-apcu 4.0.2-2build1 php5-fpm 5.5.9+dfsg-1ubuntu4.7
phpinfo() 给我模拟的“apc”。据我了解,APC 已被 APCu 取代。
https://github.com/cepa/kickasscache 我正在为我的缓存运行这个免费的课程,在我的情况下它确实节省了很多 cpu/mem。 但我不明白这是否与 APCu 相同?
如果不是,我该如何设置正确的缓存? 因为我的新服务器资源有限,我需要一个解决方案。
php -v 返回
PHP 5.5.9-1ubuntu4.7 (cli) (built: Mar 16 2015 20:47:39)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
是不是默认开启了OPcache?
【问题讨论】:
-
APCu 是旧 APC 的用户数据组件,没有字节码缓存,因为 OpCache 现在是 PHP 的标准字节码缓存,但不提供用户数据缓存
-
@MarkBaker 感谢您的信息。有什么办法可以恢复旧的 APC 功能?我正在考虑降级我的操作系统、php 和其他软件包。
-
如果你将 PHP 降级到 5.5 以下,那么你将失去 OpCache 并且能够再次使用 APC 作为你的字节码缓存
-
请注意,不再积极支持 PHP 5.4,仅支持安全版本,这些将在 9 月 14 日之后停止
-
@MarkBaker 感谢您提供的重要信息。我想我发现了这个问题。整个故事是 php-apcu 包......我已经用 apt-get 安装了它,然后用 pecl upgrade 进行了升级。但是,如果我升级到 4.0.7,它会扼杀我的记忆。我现在对 4.0.2 很好。我在 pecl 升级时遇到了分段错误,但我忽略了它。所以底线:不要将 php-apcu 升级到 PECL。使用带有 apt 的股票版本 4.0.2 :)