50

OK、Lumen を使い始めたばかりで、Auth を使用しようとしていますが、Auth::check または Auth の他の関数を呼び出すと、以下のエラー Fatal error: Class 'Memcached' not found in vendor が発生します。 \illuminate\cache\MemcachedConnector.php 行 52。Memcached を使用したくありません。これまで使用したことがありません。

.envファイルで無効にし、CACHE_DRIVERSESSION_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',
]);

誰かが本当にここで私を助けてくれたらとてもうれしいです

編集

フレームワークを少し深く掘り下げた後SessionManager、メソッド内のクラスにセッションドライバー名をハードコーディングしましたgetSessionConfig

public function getSessionConfig()
{
    $this->setDefaultDriver("cookie");//I added this line
    return $this->app['config']['session'];
}

それは機能しますが、物事を行う良い方法ではありません。構成ファイルはありません。すべての構成が.envファイルに書き込まれていると思いますが、 .envで変更してから実行した後でも、session_driverとcache_driver がデフォルトで memecached に設定されている理由が本当にわかりませんcomposer dump-autoload... Lumen :(

編集 これは私の.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

私はすでにbootsrap/app.phpでこの行のコメントを外しています

 Dotenv::load(__DIR__.'/../');

私のデータベース構成は完全に機能するため、.env ファイルは問題なくロードされます。

4

12 に答える 12

46

今日、この問題に 3 時間費やしました。このトピックの demve の投稿の助けを借りて、解決策を見つけました。とても簡単です!後の成長に影響しないことを願っています。

ちょうどそれに、.envファイルで:

CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=array

セッションに関する新しい問題に直面したので、UPDATEを行います。実際、前のパラメーターを設定すると、ドキュメントに記載されているように、セッションは永続的になりません。array - sessions will be stored in a simple PHP array and will not be persisted across requests.

そのため、常に.envそのようなファイルで変更する必要があります:

SESSION_DRIVER=cookie

を使用するvar_dump(Session::all());と、セッションのすべての値を確認できるようになりました

于 2015-05-09T18:06:49.090 に答える
20

特に を使用している場合は、サーバーの再起動が必要になる場合がありますphp artisan serve

.envルーメンは、リクエストごとに変更を取得していないようです。

私はまったく同じ問題を抱えていました-ファイルキャッシュを使用しようとしましたが、Memcachedに関するエラーを受け取りました-サーバーを再起動すると.envファイルがリロードされます。

于 2015-04-28T23:30:51.203 に答える
2

私の場合、私は.envファイルに追加を追加 しCACHE_DRIVER=arrayました

Dotenv::load(__DIR__.'/../');

bootstrap/app.phpの中で.envファイルが機能し始めました。

于 2015-06-19T11:33:35.923 に答える
2

私にとっての問題は、PHP memcached の準備ができていないホームステッド リポジトリの php-7 ブランチを使用したことでした。

于 2015-10-28T19:14:22.313 に答える
-1

これは、artisan コマンドを実行しようとしているユーザーとは別のユーザーが .env ファイルを所有している場合に発生します。

于 2017-12-12T16:07:07.193 に答える