php中的操作码和数据缓存是什么


what is opcode and data cache in php

我正在安装Akeneo PIM。它基于Symfony2框架。

它有一些先决条件。有些我理解,有些则令人困惑。

我在WAMP中安装了Zend操作缓存,在phpinfo中显示了它,但我不知道php中有什么数据缓存。

我需要帮助。。。。。

我得到这个错误:

( ! ) Fatal error: Call to undefined function Doctrine'Common'Cache'apc_fetch() in D:'wamp'www'akeneo'vendor'doctrine'cache'lib'Doctrine'Common'Cache'ApcCache.php on line 40
Call Stack
#   Time    Memory  Function    Location
1   0.0140  139760  {main}( )   ..'app.php:0
2   0.4300  334232  Symfony'Component'HttpKernel'Kernel->handle( )  ..'app.php:24
3   0.4300  334344  Symfony'Component'HttpKernel'Kernel->boot( )    ..'bootstrap.php.cache:2253
4   84.9849 830408  Symfony'Component'HttpKernel'Kernel->initializeContainer( ) ..'bootstrap.php.cache:2222
5   157.3350    19333112    Symfony'Component'HttpKernel'CacheWarmer'CacheWarmerAggregate->warmUp( )    ..'bootstrap.php.cache:2451
6   157.4190    19379904    Symfony'Bridge'Doctrine'CacheWarmer'ProxyCacheWarmer->warmUp( ) ..'CacheWarmerAggregate.php:47
7   157.4330    19380208    Doctrine'Common'Persistence'Mapping'AbstractClassMetadataFactory->getAllMetadata( ) ..'ProxyCacheWarmer.php:69
8   159.3501    20279512    Doctrine'Common'Persistence'Mapping'AbstractClassMetadataFactory->getMetadataFor( ) ..'AbstractClassMetadataFactory.php:114
9   159.3561    20283608    Pim'Bundle'CatalogBundle'Doctrine'ArrayApcCache->fetch( )   ..'AbstractClassMetadataFactory.php:207
10  159.3561    20283632    Doctrine'Common'Cache'CacheProvider->fetch( )   ..'ArrayApcCache.php:54
11  159.3561    20283656    Doctrine'Common'Cache'CacheProvider->getNamespacedId( ) ..'CacheProvider.php:78
12  159.3561    20283688    Doctrine'Common'Cache'CacheProvider->getNamespaceVersion( ) ..'CacheProvider.php:147
13  159.3561    20284072    Doctrine'Common'Cache'ApcCache->doFetch( )  ..'CacheProvider.php:174

您应该需要在"wamp"上安装APC,一个php扩展。我认为在wampserver上安装php_apc.dll将帮助您在wamp for windows上安装APC

Akeneo需要两种类型的缓存:一种用于加速代码执行,另一种用于数据缓存。

如果您使用PHP>=5.5,请考虑使用ZendOPcache和apcu。请注意,ZendOPcache大多数时候都是与PHP一起安装的,但有时您需要自己启用它。

如果您使用PHP<5.5,考虑使用apc和apcu。

为了确保两个缓存都被启用,你可以使用一个简单的PHP脚本,其中包含phpinfo();调用。提示:不要在shell中使用php -i来验证这一点,PHP加速器有时在CLI模式下被禁用。。。对于Zend OPcache,您也可以使用Rasmus在这里提出的网页:https://github.com/rlerdorf/opcache-status

最后但同样重要的是,我不建议使用Zend OPcache进行开发。首先,在开发时可能不需要更多的性能,其次,您可能会浪费时间来判断代码错误是否是由缓存引起的(例如,如果您的Zend OPcache配置非常激进,并且没有验证PHP文件中的代码更改…)