Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php APC、APCu和Opcache之间的区别?_Php_Caching_Apc_Opcache - Fatal编程技术网

Php APC、APCu和Opcache之间的区别?

Php APC、APCu和Opcache之间的区别?,php,caching,apc,opcache,Php,Caching,Apc,Opcache,我正在使用以下软件包运行web服务器; php apc 3.1.7-1 php5 fpm 5.3.10-1ubuntu3.10 然而,我已经在Ubuntu14.04上构建了一个新的服务器,看起来php apc已经不可用了 因此,APC是我巨大流量的生命服务器(每天100 k的独特访问量) 我对PHP上的缓存机制有点困惑。 新服务器包括以下软件包: php apc 4.0.2-2build1 php5 apcu 4.0.2-2build1 php5 fpm 5.5.9+dfsg-1ubuntu4.

我正在使用以下软件包运行web服务器; php apc 3.1.7-1 php5 fpm 5.3.10-1ubuntu3.10

然而,我已经在Ubuntu14.04上构建了一个新的服务器,看起来php apc已经不可用了

因此,APC是我巨大流量的生命服务器(每天100 k的独特访问量)

我对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取代

我运行这个免费的类用于缓存,在我的情况下,它确实节省了很多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?

从PHP5.5及更高版本开始,不需要APC(或任何类似的字节码缓存扩展,如XCache)。PHP开发人员直接将他们所称的OPCache集成到产品的核心中。这不仅提供了更大的整体产品稳定性,而且得到了PHP开发人员的正式支持

如果您需要APC中不在OPCache中的特定功能(例如APCu功能),那么您应该在php开发人员邮件列表上开始讨论


最后,一个好的经验法则是只运行PHP.net主页上列出的PHP版本。虽然发行版通常会对安全补丁进行后台移植,但较新版本的PHP具有更有用的功能。较新版本的PHP通常还具有显著的性能优势,可以让您绕过需要额外的PECL扩展,如APCu。

APCu是旧APC的用户数据组件,没有字节码缓存,因为OpCache现在是PHP的标准字节码缓存,但不提供用户数据caching@MarkBaker谢谢你的信息。有没有办法回到旧的APC功能?我正在考虑降级我的操作系统、php和其他软件包。如果您将php降级到5.5以下,那么您将丢失OpCache,并能够使用APC作为字节码缓存,因为PHP5.4不再受积极支持,只有安全版本,这些将在14日后停止September@MarkBaker谢谢你的好消息。我想我找到了问题所在。整个故事是php apcu包。。。我用apt get安装了它,然后用pecl升级进行了升级。然而,如果我升级到4.0.7,它会消耗我的内存。我现在可以用4.0.2了。我在pecl升级时遇到了分段错误,但我忽略了它。所以底线是:不要用PECL将php apcu升级为。使用股票版本4.0.2和apt:)我可以问一个来源吗?说它与php5.5+捆绑在一起,但在我新安装的php5.6+上,
/etc/php5/cli/PHP.ini
/etc/php5/apache2/PHP.ini
的内容说它在默认情况下是禁用的(
;opcache.enable=0
)。该条目开头的分号表示该行已被注释掉,因此,在PHP安装中启用了opcache。如果分号不存在,那么它确实会被禁用,所以你很好。你可以安装
php apcu bc
如果你使用APC的数据存储功能,它会使用apcu安装兼容函数。@DaveMorton debian的方法是注释掉默认值,因此,在这种情况下,默认值为0,默认情况下禁用opcache