似乎APC似乎没有更新以与php 5.4版本一致(我希望他们将像原计划一样将APC包含在PHP核心中)。
我似乎无法找到任何明确的答案,目前的APC是否适用于PHP 5.4+。我设法找到PHP 5.4的Ubuntu包,但不会安装php-apc包。
答案 0 :(得分:163)
2013年3月21日,PHP 5.5 beta 1 was released including "Zend OPCache" - 它看起来很可能会成为未来APC的替代品,因为它包含在PHP核心中,并且必须为每个新版本保留。
我个人会建议那些依靠APC进行操作码缓存的人使用即将推出的内置操作码缓存来测试他们的代码,并反馈遇到的任何问题以确保稳定的最终版本。
我不知道这对APC的未来意味着什么。
这意味着开发人员不认为它完全稳定。虽然很多人在使用当前的SVN版本时都没有遇到任何问题,但在特定配置或负载较重的情况下仍然存在奇怪的边缘情况报告。
与您希望在生产环境中使用的所有内容一样,请确保在开发或预生产环境中彻底测试任何版本(beta 或 stable)首先 。这包括负载测试!
从3.1.13版本开始,对SVN存储库的提交有所放缓,而bug list没有那么多最近添加的内容。按照你的意愿做好准备。
2012年12月10日21:05,Rasmus Lerdorf写道:
APC现在处于5.4的位置,我认为不存在比5.3中更多的边缘情况。两者都不是完美的,但它足够接近大多数网站。
任何具备C / gdb技能和一些空闲时间的人都应该掩饰bug list,看看他们是否能解决任何问题,或改进我们都依赖的免费开源产品上。
存在替代解决方案,维基百科提供list of PHP accelerators。
2013年2月13日,Zeev Suraski announced Zend Optimizer+ source code的可用性。
下一个主要版本(5.5之后的版本)已经有了lengthy discussion about integrating Zend Optimizer+ into the PHP core。如果是这种情况,人们可能希望事先熟悉Zend Optimizer +。
APC 3.1.14 has been removed from PECL下载由于一些已发现但尚未被追踪的严重内存问题。
如果您已经在使用3.1.14,则可能希望降级,直到3.1.15发布。请记住,这仍然是 beta 。如果您正在使用它,您使用它需要您自担风险。
2013年1月2日:
APC 3.1.14可用,adding PHP 5.5 compatibility, in addition to resolving a fair number of other bugs。
仍测试版
2012-09-03 :
APC 3.1.13可用,fixing a number of segfaults。
2012-08-16 :
已创建APC 3.1.12 tag,但仍标记为测试版,可在APC PECL page上使用,以及changelog。
这次修复了很多与bin_dump相关的错误。
2012-07-19 :
已创建APC 3.1.11 tag,但仍标记为测试版,APC PECL page以及changelog。我一直在关注相关的邮件列表,他们仍在积极致力于修复APC错误,但它是一个复杂的模块,似乎没有多少人能胜任这项任务。此版本修复了包含文件时令人讨厌的stat = 0错误。
2012-04-11 :
今天创建了APC 3.1.10 tag,并在APC PECL page 上添加了3.1.10的beta版本
changelog州:
答案 1 :(得分:10)
自PHP 5.4.7和APC 3.1.13(甚至是2012-09-19的APC SVN中继)以来,虽然它是“兼容的”,但在负载较重的服务器上并不稳定,特别是如果你是使用PHP-FPM和$ GLOBALS。关于APC的一些开发人员讨论谈论unresolved fringe cases。
我问这个问题6个月之后我就回答了这个问题,因为这个问题仍然很普遍,遇到这样的问题并没有得到像我这样的答案,这让我跳到PHP 5.4 w / APC并被烧毁。希望这有助于人们避免一些痛苦。
答案 2 :(得分:6)
似乎错误"可能"已修复到主干的最新版本。我现在已经使用PHP 5.4.0了。
svn co http://svn.php.net/repository/pecl/apc/trunk/ apc-trunk
cd apc-trunk
phpize
./配置
请
make install
答案 3 :(得分:5)
好吧,我正在尝试最近几天,而且我无法让操作码cacher与php 5.4一起工作。 Xcache不会编译,apc在缓存时不会识别某些类。 我认为这是西蒙所说的错误。
我听说后备箱中有一些修复,但我也尝试了最新的中继源,但同样的错误不断回来。 我认为没有操作码cacher的php(现在没有可用的)不值得生产。希望apc的人们能尽快解决这个问题。
UPDATE !!!
Xcache 2.0.0-rc1已经出来并与php 5.4兼容。享受!
答案 4 :(得分:5)
不,APC 1.3.9(截至目前,即使是svn主干)也与php 5.4.0不兼容,我知道因为我花了好几个小时试图让它工作(测试了各种svn) /php.ini设置/编译器标志/你的名字。)
这简直太荒谬了,APC是最受欢迎的PHP扩展之一,你可以期待经过8周的PHP 5.4 RC后,他们有时间让APC与它一起工作。
可怜。
答案 5 :(得分:4)
我找到了apcu http://windows.php.net/downloads/pecl/releases/apcu/
也许这是Windows上的x64的apc。它(版本4.0.1)适用于我的应用程序。
答案 6 :(得分:4)
我正在使用PHP版本5.5.19的AMPPS。从PHP 5.5发布以来的一段时间 - APC被Zend OPCache取代,它包含在PHP 5.5及更高版本中。现在你要做的就是启用“APC”(目前是“OPcache”)就是编辑你的php.ini。在[XDebug]部分添加流线之前:
<强>的php.ini 强>
...
[OPcache]
zend_extension=php_opcache.dll
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=24
opcache.max_accelerated_files=4000
opcache.revalidate_freq=3
opcache.fast_shutdown=1
...
请注意,我们需要两个实例:
zend_extension =
[OPcache]中的一个和[XDebug]部分中的一个。在xampp / ampps / easyPHP服务器安装中,Xdebug通常不是默认提供的。您可能会发现自己需要下载Xdebug扩展。您可以使用为您的php定义正确的Xdebug的在线应用程序轻松完成此操作。访问http://xdebug.org/wizard.php并按照他们的简单说明操作。一旦为php版本下载了正确版本的Xdebug,请在[XDebug]部分编辑zend_extension的链接。
...
[XDebug]
zend_extension = "C:\Program Files (x86)\Ampps\php\ext\php_xdebug-2.2.6-5.5-vc11.dll"
......
请注意!您必须在php.ini文件中的XDebug之前添加OPcache部分!如果你正确地关注我,你的php.ini文件中应该有两个zend_extension实例(一个在OPcache中,一个在Xdebug中)。
这非常适用于 Symfony2 框架,并且消除了为PHP和Xdebug安装和启用APC的建议消息。
向运行symfony 2并从“web / config.php”中删除警告消息的人发送消息,但仍然通过从命令行“php app / check.php”运行来遇到问题。如果发生这种情况,这意味着您的控制台正在使用不同的php.ini文件。更改你的系统PATH varible - 使它指向正确的php目录(你有你的php.exe文件,你的本地服务器使用它)。
如果您需要更深入的解释,请在下面的评论中告诉我。问候。
答案 7 :(得分:3)
似乎还有一些问题需要解决。查看bugs,您可能能够找出解决特定问题的方法。
我在几个小时前处理过一个这样的错误,结果发现从SVN中继使用APC是可行的方法。希望这有帮助!
答案 8 :(得分:3)
我发现你需要在每个页面请求上清除操作码缓存,否则实现接口的类无法加载。这是从最新的svn trunk,Apache 2.4.1,PHP 5.4.0编译而来。
答案 9 :(得分:2)
APC - 不推荐
我个人没有使用PHP 5.4或PHP 5.5的APC,但是最新的稳定APC与PHP 5.4不兼容,最新的beta APC可以与5.4一起使用但是它写的仍然有APC的负面问题。
如果你有PHP 5.5
只需使用Zend Opcache。它是开箱即用的,所以问题是最小的。
如果你有PHP 5.4
我推荐XCache。它与PHP 5.4和5.5完全兼容。积极发展。最后稳定版本于3.5个月前(2013年10月10日)发布。即使您使用fastcgi,它也可以提高性能。
答案 10 :(得分:1)
Zend OPCache包含在PHP 5.5中,名称 php_opcache.dll 位于 php / ext目录中。 为了激活它:
答案 11 :(得分:0)
APC自1月2日起推出新版本:3.1.14,解决了一些错误: http://pecl.php.net/package/APC
但是,我从dotdeb存储库运行带有APC 3.1.13的PHP 5.4.x,到目前为止没有任何问题,所以对我来说我会说它很稳定。 dotdeb还告诉我他们将在PHP的下一个版本中包含更新的APC,预计将是5.4.11。
答案 12 :(得分:0)
我们正在尝试使用PHP 5.4.26和APC 3.1.9进行无内存错误(apache segfault)。 在PHP 5.4.X上有APC的开放式错误:https://bugs.php.net/bug.php?id=61934
我建议不要在PHP上使用此插件&gt; 5.3。
答案 13 :(得分:0)
在XAMPP 5.6.3版(PHP 5.6.3)中,您在ini.php中所要做的就是:
[OPcache]
zend_extension = php_opcache.dll
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=24
opcache.max_accelerated_files=4000
opcache.revalidate_freq=3
opcache.fast_shutdown=1
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.max_nesting_level = 200
xdebug.profiler_append = 1
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;xdebug.profiler_output_dir = "C:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
;xdebug.remote_enable = 0
;xdebug.remote_handler = "dbgp"
;xdebug.remote_host = "127.0.0.1"
;xdebug.trace_output_dir = "C:\xampp\tmp"
symfony2框架的配置。