not found cache php laravel memcached lumen

php - class memcached not found windows



Laravel Lumen Memcached no encontrado (12)

Ok, acabo de empezar con Lumen y estoy tratando de usar Auth, pero una llamada a Auth :: check o cualquier otra función de Auth ... conduce al siguiente Error Fatal error: Clase ''Memcached'' no encontrada en el proveedor / illuminate / cache / MemcachedConnector.php en la línea 52 . No quiero usar Memcached nunca lo haya usado antes.

Lo deshabilité en el archivo .env y configuré el CACHE_DRIVER y el SESSION_DRIVER como matriz, pero todavía muestra el mismo error.

Decidí no usar Auth nuevamente y manejar manualmente mi authetication con sesiones / tokens, pero habilitando los resultados de MiddleWare StartSession para el mismo error.

$app->middleware([ // ''Illuminate/Cookie/Middleware/EncryptCookies'', // ''Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse'', ''Illuminate/Session/Middleware/StartSession'', // ''Illuminate/View/Middleware/ShareErrorsFromSession'', // ''Laravel/Lumen/Http/Middleware/VerifyCsrfToken'', ]);

Por favor, estaría tan contento si alguien realmente puede ayudarme aquí

EDITAR

Después de adentrarme un poco en el framework, SessionManager el nombre del controlador de sesión en la clase SessionManager dentro del método getSessionConfig

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

Funciona, aunque no es una buena manera de hacer las cosas. No hay ningún archivo de configuración, creo que todas las configuraciones están escritas en el archivo .env , pero realmente no sé por qué el driver_sesión y el controlador caché están predeterminados en memecached incluso después de cambiarlo en .env y luego ejecutar el composer dump-autoload . . Lumen :(

EDITAR Este es mi archivo .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

Ya tengo esta línea descomentada en mi bootsrap / app.php

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

Mi configuración de DataBase funciona perfectamente, por lo que el archivo .env se carga bastante bien.


Asegúrate de no quedarte atrapado por el archivo .env que no se está cargando, lo que de manera predeterminada está comentado en Lumen. Entonces, si está especificando un controlador de caché diferente en su .env, haga lo siguiente.

Nota: Si está utilizando el archivo .env para configurar su aplicación, no olvide descomentar el método Dotenv :: load () en su archivo bootstrap / app.php.

Fuente: lumen.laravel.com/docs/cache


Compruebe si memcached está instalado, si no lo instala ejecutando:

apt-get install php5-memcached


En el archivo .env, reemplace

#This line:- CACHE_DRIVER = memcached #With this:- CACHE_DRIVER = array


En mi caso agregué Add CACHE_DRIVER=array en el archivo .env
Entonces

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

en mi bootstrap/app.php y el archivo .env comenzó a funcionar.


Es posible que deba reiniciar su servidor, especialmente si está utilizando el servicio php artisan serve .

Lumen no parece recoger los cambios de .env por solicitud.

Tenía exactamente el mismo problema: tratar de usar la memoria caché de archivos, pero recibí errores con respecto a Memcached. Al reiniciar el servidor, se vuelve a cargar el archivo .env .


Este problema se resolvió cuando instalé este paquete, así que prueba al menos

Primero probé esto y funciona bien

CACHE_DRIVER = array

pero luego pensé en lo que se memcached

Luego probé esto y funciona bien sin cambiar el controlador memcached

apt-get install php-memcached


Esto sucede si su archivo .env es propiedad de otro usuario distinto al que intenta ejecutar el comando artesanal.


Para mí, el problema fue que utilicé la rama php-7 del repositorio Homestead, que no tiene PHP memcached listo.


Pasé 3 horas en este problema hoy. Con la ayuda del post de demve en este tema, encontré la solución. Muy simple ! Espero que no me afecte más tarde en mi desarrollo.

Solo para eso, en el archivo .env :

CACHE_DRIVER=array SESSION_DRIVER=array QUEUE_DRIVER=array

Ok, hago una ACTUALIZACIÓN porque estaba enfrentando un nuevo problema sobre la sesión. De hecho, cuando configura los parámetros anteriores, su sesión no será persistente, como se indica en la documentation : array - sessions will be stored in a simple PHP array and will not be persisted across requests.

Así que lo he cambiado, siempre en .env archivo .env así:

SESSION_DRIVER=cookie

Con var_dump(Session::all()); Ahora puedo ver todos los valores de mi sesión


Si tiene una nueva instalación de lúmenes, debe cambiar el nombre de .env.example a .env . ¡Entonces puede leer tus configuraciones!


Tenía un problema similar ahora, no podía rastrearlo, pero creo que tiene algo que ver con el hecho de que las configuraciones predeterminadas se almacenan en la vendor/laravel/lumen-framework/config , el DotEnv::$inmutable configuración DotEnv::$inmutable y el servidor de artisan serve .

La solución que funcionó para mí fue:

  1. Agregue en bootstrap/app.php lo siguiente: Dotenv::makeMutable(); Dotenv::load(__DIR__.''/../''); Dotenv::makeImmutable(); Dotenv::makeMutable(); Dotenv::load(__DIR__.''/../''); Dotenv::makeImmutable();

  2. en el archivo .env , establezca toda la configuración en "controladores básicos" (matriz, archivo) incluso si no los va a usar, porque


en su archivo .env , también puede usar CACHE_DRIVER=file lugar de CACHE_DRIVER=memcached