我正在安装Akeneo PIM。它基于Symfony2框架。
它有一些先决条件。有些我理解,有些令人困惑。
我在WAMP中安装了Zend opcache,并在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
答案 0 :(得分:1)
你应该在你的“wamp”上安装APC
,一个php扩展。我认为Installing php_apc.dll on wampserver可以帮助您在Windows的wamp上安装APC
。
答案 1 :(得分:1)
Akeneo需要两种类型的缓存:一种用于加速代码执行,另一种用于数据缓存。
如果您使用PHP> = 5.5,请考虑使用ZendOPcache和apcu。请注意,ZendOPcache大部分时间都是使用PHP安装的,但有时您需要自己启用它。
如果您使用PHP< 5.5,考虑使用apc和apcu。
要确保启用两个缓存,您可以使用一个带有phpinfo();
调用的简单PHP脚本。提示:不要在shell中使用php -i
来验证这一点,有时在CLI模式下禁用PHP加速器...对于Zend OPcache,您还可以使用Rasmus提出的网页,例如:https://github.com/rlerdorf/opcache-status
最后但同样重要的是,我不建议使用Zend OPcache进行开发。首先,您在开发时可能不需要更多性能,其次,您可能会浪费时间来确定代码错误是否是由于缓存造成的(例如,如果您的Zend OPcache配置是非常激进,并不验证PHP文件中的代码更改...)。