Pau*_*eke 45 php memcached laravel lumen
好吧,我刚开始使用Lumen并且我正在尝试使用Auth,但是调用Auth :: check或Auth的任何其他函数..导致以下错误 致命错误:在供应商中找不到类'Memcached'第52行的\ illuminate\cache\MemcachedConnector.php.我不想使用之前从未使用过的Memcached.
我在.env文件中禁用它并将CACHE_DRIVER和SESSION_DRIVER设置为数组,但仍然显示相同的错误.
我决定不再使用Auth并使用会话/令牌手动处理我的身份验证,但启用MiddleWare StartSession会导致相同的错误.
$app->middleware([
// 'Illuminate\Cookie\Middleware\EncryptCookies',
// 'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
// 'Illuminate\View\Middleware\ShareErrorsFromSession',
// 'Laravel\Lumen\Http\Middleware\VerifyCsrfToken',
]);
Run Code Online (Sandbox Code Playgroud)
如果有人真的可以帮助我,我会很高兴
编辑
在框架中进行了一点深入之后,I Hard SessionManager在方法中的类中编写了会话驱动程序名称getSessionConfig
public function getSessionConfig()
{
$this->setDefaultDriver("cookie");//I added this line
return $this->app['config']['session'];
}
Run Code Online (Sandbox Code Playgroud)
它虽然有效,但不是一种好的做事方式.没有配置文件,我相信所有的配置都写在.ENV文件,但我真的不知道为什么session_driver和cache_driver默认为memecached即使在改变之后.ENV然后跑去composer dump-autoload......流明:(
编辑 这是我的.env文件
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomKey!!!
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=array
SESSION_DRIVER=cookie
QUEUE_DRIVER=database
Run Code Online (Sandbox Code Playgroud)
我已经在我的bootsrap/app.php中取消注释了这一行
Dotenv::load(__DIR__.'/../');
Run Code Online (Sandbox Code Playgroud)
我的DataBase配置工作正常,因此.env文件加载得非常好.
Zl3*_*l3n 47
我今天花了3个小时解决这个问题.在本主题的demve帖子的帮助下,我找到了解决方案.非常简单 !我希望以后在我的发展中不会影响我.
就在它,在.env文件中:
CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=array
Run Code Online (Sandbox Code Playgroud)
好的,我进行了更新,因为我遇到了一个关于会话的新问题.实际上,当您设置上一个参数时,您的会话将不会持久,如文档中所述:array - sessions will be stored in a simple PHP array and will not be persisted across requests.
所以我改变它,总是在.env文件中:
SESSION_DRIVER=cookie
Run Code Online (Sandbox Code Playgroud)
随着var_dump(Session::all());现在我可以看到我的会话的整个价值
Ale*_*orn 19
您可能需要重新启动服务器,尤其是在您使用时php artisan serve.
Lumen似乎没有.env按照请求获取更改.
我有完全相同的问题 - 尝试使用文件缓存,但收到有关Memcached的错误 - 重新启动服务器重新加载.env文件.
Aja*_*mar 11
这个问题在我安装这个包时解决了所以至少尝试
首先我试过这个,它工作正常
CACHE_DRIVER = array
Run Code Online (Sandbox Code Playgroud)
但后来想到了什么是 memcached
然后我尝试了这个,它在不改变驱动程序的情况下工作正常 memcached
apt-get install php-memcached
Run Code Online (Sandbox Code Playgroud)
yum 包管理器或 Amazon Linux。
yum install php-memcached -y
Run Code Online (Sandbox Code Playgroud)
小智 10
在.env文件替换
#This line:-
CACHE_DRIVER = memcached
#With this:-
CACHE_DRIVER = array
Run Code Online (Sandbox Code Playgroud)
请确保不要被未加载的.env文件抓住,默认情况下它已在Lumen中注释掉了.因此,如果要在.env中指定其他缓存驱动程序,请执行以下操作.
注意:如果您使用.env文件配置应用程序,请不要忘记在bootstrap/app.php文件中取消注释Dotenv :: load()方法.
资料来源:http://lumen.laravel.com/docs/cache
| 归档时间: |
|
| 查看次数: |
42560 次 |
| 最近记录: |