如何在Laravel 5.7中使用Memcached进行会话?

问题描述 投票:1回答:1

通常我使用文件作为驱动程序来存储会话和缓存。现在我想使用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 laravel session memcached laravel-5.7
1个回答
1
投票

我还不能发表评论,很抱歉发帖回答。

尝试从您的应用程序目录运行php -i || grep 'memcached'

如果你正在流浪汉,请尝试vagrant ssh然后php -i || grep 'memcached'

你也可以(如下所示)将phpinfo();添加到你的routes/web.php(在<?下面)的顶部,当你试图在浏览器中加载你的网站时,它应该吐出你的PHP信息。

这将使您了解是否已安装和加载memcached。

© www.soinside.com 2019 - 2024. All rights reserved.