Estoy construyendo un proyecto usando Laravel. Funcionaba bien en localhost, pero cuando lo subo al servidor (el servidor tiene comodo ssl instalado), recibo el siguiente error:
RuntimeException in EncryptionServiceProvider.php line 29:
No supported encrypter found. The cipher and / or key length are invalid
in EncryptionServiceProvider.php line 29
at EncryptionServiceProvider->Illuminate\Encryption\{closure}(object(Application), array()) in Container.php line 733
at Container->build(object(Closure), array()) in Container.php line 626
at Container->make('encrypter', array()) in Application.php line 674
at Application->make('Illuminate\Contracts\Encryption\Encrypter') in Container.php line 837
at Container->resolveClass(object(ReflectionParameter)) in Container.php line 800
at Container->getDependencies(array(object(ReflectionParameter)), array()) in Container.php line 771
at Container->build('SahraSalon\Http\Middleware\EncryptCookies', array()) in Container.php line 626
at Container->make('SahraSalon\Http\Middleware\EncryptCookies', array()) in Application.php line 674
at Application->make('SahraSalon\Http\Middleware\EncryptCookies') in Pipeline.php line 123
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 118
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 86
at Kernel->handle(object(Request)) in index.php line 54
¿Alguien puede ayudar a resolver este error?
Respuestas:
¿Tiene todas las extensiones necesarias instaladas en el servidor?
Es posible que te falte la extensión OpenSSL. Además, ¿tiene la llave en el
.env
archivo?Intenta ejecutar:
php artisan key:generate
Respuesta:
'cipher' => ''
no se configuró.fuente
'cipher' => 'AES-256-CBC'
inconfig/app.php
php artisan key:generate
para generar una nueva clave.php artisan key:generate
intentar solucionar el problema, pero persiste. ¿Podrían mis rutas tener algo que ver con esto: `` `Ruta :: grupo (['middleware' => ['web']], función () {Ruta :: get ('/ login', 'PublicController @ login' ); Route :: post ('/ login', 'AuthenticationController @ login'); Route :: group (['prefix' => 'admin', 'middleware' => 'auth'], function () {route: : get ('tablero', function () {echo 'en el tablero';});});}); `` `Solo escribe en la consola:
Y si su app.php no cambia esta clave, cámbiela manualmente.
A continuación, si aparece este mensaje de error:
Luego haga una copia del
.env.example
archivo e intente nuevamente:fuente
Tengo el mismo problema antes y lo solucioné, siga de esta manera: vaya a config / app.php, cambie
"cipher" => "anything"
a'cipher' => MCRYPT_RIJNDAEL_128,
fuente
'cipher' => 'AES-256-CBC',
pero esto debería ser sin comillas !! Extraño.AES-256-CBC
en la lista de cifrados compatibles como resultó dephpinfo()
Lo arreglé ejecutando esto:
fuente
Solo soluciono el error.
Shift+Click
botón derecho del mouse para "abrir la ventana de recomendación aquí" desde su proyecto raíz."php artisan key:generate"
.config/app.php
gustar'key' => env('APP_KEY', 'insert get 32 char key')
, // número de línea 81fuente
En mi caso, necesito habilitar la extensión mcrypt.
Pero primero, compruebe si ya lo tiene:
Compruebe si el módulo mcrypt está cargado:
si no aparece nada, es porque no está cargado, pero ya lo tienes instalado arriba ¿verdad? Entonces haz esto:
Vuelva a verificar y debería ver mcrypt en lugar de nada. Esa es una buena señal, recarga tu aplicación y repara tu próximo error;)
fuente
En el directorio raíz, si hay un
.env.example
archivo, cámbielo.env
y ejecútelophp artisan key:generate
. Esto funcionó para mí.fuente
escribir en consola
php artisan key:generate
recibirás un mensaje como:
Application key [get 32 char key] set successfully.
reemplazar la clave de la aplicación en Me
config/app.php
gusta'key' => env('APP_KEY', 'insert get 32 char key'),//line number 81
fuente
config/app.php
archivo. ¿Podrías dejarme saberlo?project folder
enwamp server
y luego a encontrarconfig
la carpeta por lo que recibiráapp.php
. graciasresuelto con:
php clave artesanal: generar
fuente
Si está utilizando el archivo de configuración app.php en lugar de leer la clave del archivo .env, puede eliminar la función env () en la variable clave, por ejemplo:
'key' = env('someRandom36CharsString'),
a
'key' = 'someRandom36CharsString',
fuente
Logré resolver la implementación en el servidor Ubuntu en vivo, aquí están todos los pasos
Asegúrese de PHP> = 5.5.9
Asegúrese de que OpenSSL, Mbstring, Tokenizer y mcrypt estén instalados.
Para instalar mcrypt en PHP (Ubuntu):
Hacer que la carpeta de almacenamiento se pueda escribir:
chmod -R 0777 storage
Haga que Apache use la carpeta pública Lavarel / como inicio:
DocumentRoot /home/code2/public_html/Laravel-Project/public <Directory "/home/code2/public_html/Laravel-Project/public”> AllowOverride all </Directory>
El problema principal para mí es que FTP podría no copiar archivos ocultos de forma predeterminada: ¡
.env
y/public/.htaccess
debe estar allí!Después de completar las tareas anteriores, funcionó en el servidor Ubuntu
fuente
Estuve sufriendo este problema durante demasiadas horas antes de descubrir que la clave se estaba almacenando en caché en bootstrap \ cache \ config.php. Eliminé el archivo y mi sitio se cargó bien (es decir, no había problema con mi configuración).
Descubrí esto agregando algunos resultados de depuración a boostrap \ cache \ compiled.php para que escupiera el cifrado y la clave (en algún lugar alrededor de la línea 7010). Luego investigó para ver cómo estaba recogiendo la configuración y descubrió que usa un archivo de configuración de caché.
fuente
Asegúrese de tener estos requisitos en su máquina.
Luego, después de instalar o actualizar su proyecto por
Después de esto tienes ...
Haga un duplicado y cámbiele el nombre a:
y realice cambios de acuerdo con la configuración de su base de datos o cualquier otra modificación que necesite.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your db name DB_USERNAME=username if any otherwise root DB_PASSWORD= your password if not set leave blank
Finalmente, genere su clave de aplicación:
Para alguien puede ser que solo el último paso sea suficiente. Pero tengo este problema cada vez que clono cualquier proyecto de laravel. Todo este paso lo hace con cualquier peligro.
fuente
Agregue
"illuminate/html": "~5.0"
para requerir la sección de sucomposer.json
archivo. Así:... "require": { ... "illuminate/html": "~5.0" ... }, ...
Luego ejecute el
composer install
comando. Cuandocomposer install
se complete. correrphp artisan key:generate
. Recibirá un mensaje como este:Application key [get 32 char key] set successfully.
fuente