2014-09-27 62 views
1

我正在安装Akeneo PIM。它基于Symfony2框架。什么是操作码和数据缓存php

它有一些先决条件。有些我明白了,有些令人困惑。

我在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

请让我们知道,如果你成功地做你想做的事。如果您认为其中一个答案对您有帮助或可以在将来帮助其他人,请考虑进行投票和标记。 – foobar 2015-08-07 13:29:08

回答

1

你应该需要安装APC,PHP扩展你的 “WAMP”。我认为Installing php_apc.dll on wampserver将帮助您安装APC wamp for windows。

+0

我们可以在wamp上安装opc和apc – 2014-09-27 09:42:43

+0

我不确定,但是我认为你应该阅读这个[http://stackoverflow.com/questions/17224798/how-to-use-php-opcache]。 – kuldipem 2014-09-27 09:45:12

1

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

如果您使用PHP> = 5.5,请考虑使用ZendOPcache和apcu。请注意,ZendOPcache大部分时间都是使用PHP安装的,但您有时需要自行启用它。

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

要确保两个缓存都已启用,您可以使用一个简单的PHP脚本,并在其中调用phpinfo();调用。温馨提示:不要使用php -i在你的shell来验证这一点,PHP加速器有时CLI模式禁用...对于Zend的OPcache,你也可以使用网页,例如通过拉斯穆斯这里所倡导的:https://github.com/rlerdorf/opcache-status

最后但并非最不重要的是,我不建议使用Zend OPcache进行开发。首先,开发时可能不需要更多的性能,其次,您可能会浪费时间来弄清代码错误是否由于缓存而导致(例如,如果您的Zend OPcache配置非常激进,不验证PHP文件中的代码更改...)。