2017-06-02 667 views
0

从phpinfo()函数: phpinfo, memcache is loaded错误消息:“MemCache需要加载PHP memcache扩展。”迁移后。

然而,当我尝试迁移,显示此错误:

Exception 'yii\base\InvalidConfigException' with message 'MemCache requires PHP memcache extension to be loaded.' 

in /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/caching/MemCache.php:217 

Stack trace: 
#0 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/caching/MemCache.php(113): yii\caching\MemCache->getMemcache() 
#1 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/base/Object.php(107): yii\caching\MemCache->init() 
#2 [internal function]: yii\base\Object->__construct(Array) 
#3 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/di/Container.php(372): ReflectionClass->newInstanceArgs(Array) 
#4 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/di/Container.php(151): yii\di\Container->build('yii\\caching\\Mem...', Array, Array) 
#5 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/BaseYii.php(344): yii\di\Container->get('yii\\caching\\Mem...', Array, Array) 
#6 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/di/ServiceLocator.php(133): yii\BaseYii::createObject(Array) 
#7 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/db/Schema.php(275): yii\di\ServiceLocator->get('cache', false) 
#8 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/db/Migration.php(71): yii\db\Schema->refresh() 
#9 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/base/Object.php(107): yii\db\Migration->init() 
#10 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/console/controllers/MigrateController.php(113): yii\base\Object->__construct(Array) 
#11 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(491): yii\console\controllers\MigrateController->createMigration('m170316_221710_...') 
#12 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(129): yii\console\controllers\BaseMigrateController->migrateUp('m170316_221710_...') 
#13 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0) 
#14 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array) 
#15 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/base/Controller.php(151): yii\base\InlineAction->runWithParams(Array) 
#16 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/console/Controller.php(91): yii\base\Controller->runAction('', Array) 
#17 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/base/Module.php(455): yii\console\Controller->runAction('', Array) 
#18 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/console/Application.php(167): yii\base\Module->runAction('migrate', Array) 
#19 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/console/Application.php(143): yii\console\Application->runAction('migrate', Array) 
#20 /Library/WebServer/Documents/r2d2/vendor/yiisoft/yii2/base/Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request)) 
#21 /Library/WebServer/Documents/r2d2/yii(27): yii\base\Application->run() 
#22 {main} 

有人能帮助我找出原因?

谢谢!

+0

....也许尝试安装memcache扩展? – Farkie

回答

0

错误来自控制台应用程序,phpinfo输出来自web服务器。所以,你基本上启用了web服务器的memcache模块,但没有用于控制台。为了给出确切的解决方案,需要更多有关您的设置的信息:您使用什么,php-fpm,modapache?请提供完整的phpinfo输出无论是从网络和CLI

UPDATE

检查哪些目录额外的ini文件控制台PHP扫描:

php -i | grep "Scan this dir for additional .ini files" 

然后你需要把配置文件(例如memcache.ini)并将模块配置为其中之一。内容应该是这样的:

extension=memcache.so 

您可以检查一个网络服务器用作参考。

+0

我已经在控制台中尝试过'php -i',它不显示启用了内存缓存。你能告诉我如何启用控制台模块? –

+0

更新了我的回答 –

+0

奇怪的是迁移在我的另一个yii2网站在同一台计算机上正常工作,但出现错误'异常'yii \ base \ InvalidConfigException'消息'MemCache需要PHP memcache扩展才能加载。 '这个错误。有没有我应该注意的任何不正确的配置?谢谢! –