【发布时间】:2019-02-26 16:18:41
【问题描述】:
通常我使用文件作为驱动程序来存储会话和缓存。现在我想使用Memcached 在 Laravel 5.7 应用程序上存储会话和缓存。这对我来说是新的。我已经在本地环境中安装了php-memcached。
在我的 Laravel 5.7 Web 应用程序中,我在 .env 文件中配置了 session.driver 和 cache.default,如下所示。
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-memcached还是php-memcache?请注意这是两个不同的扩展。 -
php.net/manual/en/memcached.installation.php - 通过在 Laravel 应用程序中输出
phpinfo()来特别检查它是否在php.ini中正确启用。 -
@dparoli 由于与版本相关的特定原因,我已经安装了 memcached,但我不记得版本是什么,PHP 7.2 或 Laravel 5.7。我忘记了那个具体原因,但知道我最好使用 memcached。
标签: php laravel session memcached laravel-5.7