Yii2 - session_start(): 找不到保存处理程序 'memcached' - 会话启动失败
Yii2 - session_start(): Cannot find save handler 'memcached' - session startup failed
我收到这个错误:
session_start(): Cannot find save handler 'memcached' - session startup failed
在config/web.php我的设置是这样的:
在组件下
'cache' => [
// 'class' => 'yii\caching\FileCache',
'class' => 'yii\caching\MemCache',
'useMemcached' => true,
'servers' => [
[
'host' => '127.0.0.1',
'port' => 11211
],
],
php信息显示内存缓存已正确安装。
我还使用了此 link 中的以下脚本来检查内存缓存是否正常工作
<?php
if (class_exists('Memcache')) {
$server = '127.0.0.1';
if (!empty($_REQUEST['server'])) {
$server = $_REQUEST['server'];
}
$memcache = new Memcache;
$isMemcacheAvailable = @$memcache->connect($server);
if ($isMemcacheAvailable) {
$aData = $memcache->get('data');
echo '<pre>';
if ($aData) {
echo '<h2>Data from Cache:</h2>';
print_r($aData);
} else {
$aData = array(
'me' => 'you',
'us' => 'them',
);
echo '<h2>Fresh Data:</h2>';
print_r($aData);
$memcache->set('data', $aData, 0, 300);
}
$aData = $memcache->get('data');
if ($aData) {
echo '<h3>Memcache seem to be working fine!</h3>';
} else {
echo '<h3>Memcache DOES NOT seem to be working!</h3>';
}
echo '</pre>';
}
}
if (!$isMemcacheAvailable) {
echo 'Memcache not available';
}
?>
我得到了结果
Fresh Data:
Array
(
[me] => you
[us] => them
)
Memcache seem to be working fine!
我在这里遗漏了什么以及如何修复这个错误。
在 config/web.php 文件的顶部
use app\cart\storage\SessionStorage;
Yii::$container->setSingleton('app\cart\ShoppingCart');
Yii::$container->set('app\cart\storage\StorageInterface', function() {
return new SessionStorage(Yii::$app->session, 'primary-cart');
});
实际上除了memcache
你还需要安装memcached。
当我尝试 apt-get install memcached
我得到 memcached is installed and already newest version
但是你需要像
一样安装php-memcache
apt-get install php-memcached
在您的 phpinfo 中,memcache
memcached
应该如下图所示。
我收到这个错误:
session_start(): Cannot find save handler 'memcached' - session startup failed
在config/web.php我的设置是这样的: 在组件下
'cache' => [
// 'class' => 'yii\caching\FileCache',
'class' => 'yii\caching\MemCache',
'useMemcached' => true,
'servers' => [
[
'host' => '127.0.0.1',
'port' => 11211
],
],
php信息显示内存缓存已正确安装。
我还使用了此 link 中的以下脚本来检查内存缓存是否正常工作
<?php
if (class_exists('Memcache')) {
$server = '127.0.0.1';
if (!empty($_REQUEST['server'])) {
$server = $_REQUEST['server'];
}
$memcache = new Memcache;
$isMemcacheAvailable = @$memcache->connect($server);
if ($isMemcacheAvailable) {
$aData = $memcache->get('data');
echo '<pre>';
if ($aData) {
echo '<h2>Data from Cache:</h2>';
print_r($aData);
} else {
$aData = array(
'me' => 'you',
'us' => 'them',
);
echo '<h2>Fresh Data:</h2>';
print_r($aData);
$memcache->set('data', $aData, 0, 300);
}
$aData = $memcache->get('data');
if ($aData) {
echo '<h3>Memcache seem to be working fine!</h3>';
} else {
echo '<h3>Memcache DOES NOT seem to be working!</h3>';
}
echo '</pre>';
}
}
if (!$isMemcacheAvailable) {
echo 'Memcache not available';
}
?>
我得到了结果
Fresh Data:
Array
(
[me] => you
[us] => them
)
Memcache seem to be working fine!
我在这里遗漏了什么以及如何修复这个错误。
在 config/web.php 文件的顶部
use app\cart\storage\SessionStorage;
Yii::$container->setSingleton('app\cart\ShoppingCart');
Yii::$container->set('app\cart\storage\StorageInterface', function() {
return new SessionStorage(Yii::$app->session, 'primary-cart');
});
实际上除了memcache
你还需要安装memcached。
当我尝试 apt-get install memcached
我得到 memcached is installed and already newest version
但是你需要像
一样安装php-memcacheapt-get install php-memcached
在您的 phpinfo 中,memcache
memcached
应该如下图所示。