web-dev-qa-db-fra.com

Classe Memcached Introuvable Lumen 5.4

En essayant d'exécuter des commandes artisan, j'obtiens l'erreur suivante

[Symfony\Component\Debug\Exception\FatalThrowableError]
Class 'Memcached' not found

J'avais récemment travaillé sur un autre projet utilisant Lumen 5.3 et je n'avais aucun problème à exécuter des commandes artisanales. Les deux projets se trouvent sur le même boîtier virtuel et, à part les versions de Lumen, il n’ya aucune différence dans la configuration du serveur.

J'ai vérifié que Memcached est en cours d'exécution et qu'il n'y a pas de problèmes. 

J'ai essayé composer dump-autoload avec Composer, supprimer le dossier du fournisseur et le réinstaller, mais rien de tout cela n'a fait de différence. 

Je préférerais ne pas avoir à revenir à 5.3 si possible.

Y a-t-il un moyen de résoudre ce problème?

6
Danny Connolly

Avait le même problème. Vérifiez si vous avez l’extension memcached installée pour la version php que vous utilisez, et aussi s’il est correctement configuré dans le fichier php.ini (il se peut qu’il cherche dans le mauvais répertoire). 

7

semble que votre memcached n'est pas installé ou n'est pas configuré correctement.

pour une solution rapide,

utiliser le pilote de cache de fichiers au lieu de memcached 

CACHE_DRIVER=file
4
Mahfuz

Ubuntu 16.04 LTS, essayez ceci:

Sudo apt-get install php-memcached
2
Reinaldo Nascimento

Juste pour ajouter aux réponses spécifiques du système d'exploitation. Voici celui qui utilise OS/X et homebrew.

Vous devez d’abord déterminer quelle version de PHP vous utilisez localement.

$ php -v                
PHP 7.0.19 (cli) (built: May 21 2017 11:56:11) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

$ brew search memcached  
homebrew/php/php53-memcached            homebrew/php/php70-memcached 
homebrew/php/php54-memcached            homebrew/php/php71-memcached
homebrew/php/php55-memcached            libmemcached ✔
homebrew/php/php56-memcached            memcached ✔

Depuis que j'exécute PHP 7.0, j'ai choisi d'installer homebrew/php/php70-memcached

$ brew install homebrew/php/php70-memcached

Si vous n'avez pas installé homebrew, allez dans https://brew.sh/ et installez-le pour utiliser ces instructions. C'était la commande la dernière fois que je l'utilisais. 

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Une fois que j'ai eu fini avec tout ça, j'ai testé en effaçant le cache.

$ php artisan cache:clear
Cache cleared successfully.
$

À la vôtre, cela a réglé le problème pour le développement local.

1
jbrahy

Si vous êtes sur Mac OSX, vous devrez installer Memcached et ses dépendances PHP via Homebrew.

brew update
brew doctor
brew install memcached

Vérifiez ensuite votre version PHP et installez vos points d'ancrage PHP pertinents pour Memcached.

php -v

dans mon cas...

PHP 7.1.4 (cli) (construit le 14 avril 2017 15:02:16) (NTS)
Copyright (c) 1997-2017 Le groupe PHP
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

Alors j'ai utilisé:

brew install php71-memcached

Mais vous pouvez rechercher votre version requise en utilisant

brew search memcached

Une fois ces étapes effectuées, vous obtiendrez probablement une nouvelle erreur.

Aucun serveur Memcached ajouté.

Alors lancez-le avec

brew services restart memcached

Terminé!

0
Grant