Laravel Lumen Memcached pas trouvé
Ok, je viens de commencer avec la Lumière et je suis en train d'utiliser l'Authentification, mais un appel à Auth::chèque ou toute autre fonction de Auth.. conduit à l'Erreur ci-dessous
Fatal error: Class 'Memcached' ne trouve pas dans vendor\illuminate\cache\MemcachedConnector.php sur la ligne 52.
Je ne veux pas utiliser Memcached n'a jamais été utilisé avant.
J'ai désactivé dans le .env fichier et mettre le CACHE_DRIVER et SESSION_DRIVER à la matrice, mais affiche toujours la même erreur.
J'ai décidé de ne pas utiliser Auth encore et manuellement la poignée de mon authetication avec des sessions/jetons, mais permettant la MiddleWare StartSession résultats pour la même erreur.
$app->middleware([
//'Illuminate\Cookie\Middleware\EncryptCookies',
//'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
//'Illuminate\View\Middleware\ShareErrorsFromSession',
//'Laravel\Lumen\Http\Middleware\VerifyCsrfToken',
]);
S'il vous plaît je serais tellement heureux si quelqu'un peut vraiment m'aider ici
MODIFIER
Après Un peu de Profondeur dans le cadre de
J'ai Codé en Dur de la séance nom du pilote dans la SessionManager
Classe
dans la méthode getSessionConfig
public function getSessionConfig()
{
$this->setDefaultDriver("cookie");//I added this line
return $this->app['config']['session'];
}
Il fonctionne bien, mais pas une bonne façon de faire les choses.
Il n'y a pas de fichier de config, je crois que toutes les configurations sont écrits dans .env fichier, mais je ne sais pas vraiment pourquoi la session_driver et cache_driver est, par défaut, memecached même après de le changer dans le .env, puis a couru composer dump-autoload
... Lumen 🙁
MODIFIER
C'est mon .env fichier
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
J'ai déjà cette ligne décommenté dans mon bootsrap/app.php
Dotenv::load(__DIR__.'/../');
Ma configuration de Base de données fonctionne parfaitement donc le .fichier de configuration est chargé
tout à fait très bien.
- Désolé avez-vous déjà suivi des documentations étapes ? lumen.laravel.com/docs/authentication
- et le cache docs ? lumen.laravel.com/docs/cache
- pourriez-vous insérer votre .env fichier s'il vous plaît?
- je l'ai dit clairement que je ne veux pas utiliser memcache, donc je ne sais vraiment pas comment il a répondu à ma question + je n'ai pas assez de réputation pour downvote vous, je suis désolé twasn pas moi.
- faites-moi confiance, je suis passé par la documentation.. s'il vous Plaît voir les édité question
- OK, jamais l'esprit.
- Êtes-vous certain que c'est la bonne .fichier de configuration?
- Il y a deux, .env et .env.exemple, ce que j'utilise pour ma db connexion .env et il fonctionne. même sur le .env.exemple, j'ai mis les mêmes paramètres, juste pour tester, mais pas de chance
- Quelque part dans votre code ne
env('SESSION_DRIVER')
et voir de quoi il en retourne... (Oh, et aussi s'il vous plaît répondre avec@lukasgeiter
si je reçois une notification ;)) - Merci pour la réponse... je suis sorta confondre env('SESSION_DRIVER') retourne memcached même si son jeu de cookie dans mon .fichier env.
- Hmmm. Pouvez-vous commenter la Dotenv::load et puis essayer la même chose encore?
- Toujours le même résultat, Il retourne memcached. 🙁
- Cela signifie que, pour quelque raison que ce soit fixée pour l'environnement (et elle n'est pas remplacée correctement) ou votre en quelque sorte de travail avec le mauvais fichier(s) Pouvez-vous m'en dire un peu plus sur votre configuration?
- Vous devrez peut-être redémarrer votre serveur, surtout si vous utilisez
php artisan serve
. J'ai eu exactement le même problème - en essayant d'utiliser le cache de fichier, mais il a reçu des erreurs relatives à Memcached - redémarrer le serveur de la recharge de la .env. N'apparaît pas pour ramasser des changements par demande. - Yayyy!!! Yay!!!!!! Il A Travaillé.....J'ai arrêté puis redémarré le serveur. j'ai surtout faire hiberner mon système donc je ne le redémarrez pas les choses tout le temps... Merci beaucoup
- Merci de nous aider ainsi... Merci Y' all
- Bien sûr!!! (Y) @AlexOsborn Veuillez répondre à la question de sorte que la solution est plus visible par les autres et la question marqué comme résolu 🙂
- N'oubliez pas de le renommer .env.exemple => .env après l'installation. c'était mon problème :$
Vous devez vous connecter pour publier un commentaire.
Vous devrez peut-être redémarrer votre serveur, surtout si vous utilisez
php artisan serve
.Lumière ne semble pas ramasser
.env
changements par demande.J'ai eu exactement le même problème - en essayant d'utiliser le cache de fichier, mais il a reçu des erreurs relatives à Memcached - redémarrer le serveur recharge le
.env
fichier.J'ai passé 3 heures sur ce problème aujourd'hui. Avec l'aide de le poste de demve dans cette rubrique, j'ai trouvé la solution. Très simple ! J'espère que cela ne m'affecte pas plus loin dans mon développement.
Juste pour elle, dans le
.env
fichier :Ok, je fais un mise à JOUR parce que j'ai été confronté à un nouveau problème à propos de la session. En fait, lorsque vous définissez les paramètres précédents, votre session ne sera pas persistant, comme dit dans le la documentation :
array - sessions will be stored in a simple PHP array and will not be persisted across requests.
J'ai donc changer, toujours dans
.env
fichier comme ça :Avec un
var_dump(Session::all());
je peux maintenant voir l'ensemble des valeurs de ma sessionDans .fichier env remplacer
Assurez-vous de ne pas se faire attraper par votre .env fichier n'est pas chargé, qui, par défaut, c'est commentée dans la Lumière. Donc, si vous spécifiez un autre gestionnaire de cache dans votre .env, procédez de la manière suivante.
Source: http://lumen.laravel.com/docs/cache
dans votre
.env
fichier, vous pouvez également utiliserCACHE_DRIVER=file
au lieu deCACHE_DRIVER=memcached
Ce problème résolu quand j'ai installé ce package donc, essayez au moins
D'abord j'ai essayé et ça fonctionne très bien
mais alors pensé à ce qui est
memcached
Puis j'ai essayé et ça fonctionne très bien sans changement de pilote
memcached
Dans mon cas, j'ai ajouté Ajouter
CACHE_DRIVER=array
dans .fichier envPuis
dans mon
bootstrap/app.php
et la.env
fichier commencé à travailler.Pour moi, le problème était que j'ai utilisé le php-7 direction générale de homestead référentiel qui n'ont pas de PHP memcached prêt.
J'ai eu un problème similaire, maintenant, je ne pouvais pas suivre, mais ma conjecture est qu'il a quelque chose à voir avec le fait que les configurations par défaut sont stockés dans le
vendor/laravel/lumen-framework/config
dossier, leDotEnv::$inmutable
de réglage et de laartisan serve
serveur.La solution qui a fonctionné pour moi a été:
Ajouter dans
bootstrap/app.php
suivantes:Dotenv::makeMutable();
Dotenv::load(__DIR__.'/../');
Dotenv::makeImmutable();
dans le
.env
fichier, définir la configuration de base "pilotes" (tableau, fichier) même si vous n'allez pas utiliser, parce que vous wSi vous avez une nouvelle lumière de l'installation,
vous devez renommer
.env.example
à.env
. Donc, il peut lire vos configurations!Ce qui se passe si votre .env fichier appartenant à un autre utilisateur que celui d'essayer d'exécuter l'artisan de commande.
Vérifier si
memcached
est installé, si ce n'est de l'installer en exécutant: