我正在安装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文件中的代码更改…)