通常我使用文件作为驱动程序来存储会话和缓存。现在我想使用Memcached
在Laravel 5.7应用程序上存储会话和缓存。这对我来说是新的。我已经在我的本地环境中安装了php-memcached
。
在我的Laravel 5.7 Web应用程序中,我在session.driver
文件中配置了cache.default
和.env
,如下所示。
SESSION_DRIVER=memcached
CACHE_DRIVER=memcached
我将其他所有内容保留为默认安装。当我刷新页面时,我收到以下错误。
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Class 'Memcached' not found
/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php 69
我明白,当您为会话和缓存配置配置驱动程序以使用Memcached
时,MemcachedConnector
将参与其中。它导入Memcached
类并尝试创建Memcached
类的实例对象,如下所示。
use Memcached;
class MemcachedConnector {
protected function createMemcachedInstance($connectionId) {
return empty($connectionId) ? new Memcached : new Memcached($connectionId);
}
}
由于上述错误,似乎缺少Memcached
类。我该如何解决?即使它解决了问题,请不要告诉我做以下事情。
SESSION_DRIVER=file
CACHE_DRIVER=file
要么
SESSION_DRIVER=array
CACHE_DRIVER=array
因为我想使用Memcached
,并想知道如何使其工作。
我还不能发表评论,很抱歉发帖回答。
尝试从您的应用程序目录运行php -i || grep 'memcached'
。
如果你正在流浪汉,请尝试vagrant ssh
然后php -i || grep 'memcached'
你也可以(如下所示)将phpinfo();
添加到你的routes/web.php
(在<?
下面)的顶部,当你试图在浏览器中加载你的网站时,它应该吐出你的PHP信息。
这将使您了解是否已安装和加载memcached。