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:
Agregue en
bootstrap/app.php
lo siguiente:Dotenv::makeMutable(); Dotenv::load(__DIR__.''/../''); Dotenv::makeImmutable();
Dotenv::makeMutable(); Dotenv::load(__DIR__.''/../''); Dotenv::makeImmutable();
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