2014-09-27 58 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文件中的代碼更改...)。