[php] laravel 지원되는 암호화기를 찾을 수 없습니다. 암호 및 / 또는 키 길이가 잘못되었습니다.
Laravel을 사용하여 프로젝트를 만들고 있습니다. localhost에서 제대로 작동했지만 서버에 업로드하면 (서버에 comodo ssl이 설치되어 있음) 다음 오류가 표시됩니다.
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
누구든지이 오류를 해결할 수 있습니까?
답변
필요한 모든 확장이 서버에 설치되어 있습니까?
- PHP> = 5.5.9
- OpenSSL PHP 확장
- PDO PHP 확장
- Mbstring PHP 확장
- Tokenizer PHP 확장
OpenSSL 확장이 누락되었을 수 있습니다. 또한 .env
파일에 키가 설정되어 있습니까?
다음을 실행 해보십시오.
php artisan key:generate
답변 : 'cipher' => ''
설정되지 않았습니다.
답변
콘솔에만 입력합니다.
php artisan key:generate
app.php가이 키를 변경하지 않으면 수동으로 변경하십시오.
다음으로이 오류 메시지가 발생해야하는 경우 :
[ErrorException]
file_get_contents (/path/to/my/project/.env) : 스트림을 열지 못했습니다. 해당 파일 또는 디렉토리가 없습니다.
그런 다음 .env.example
파일 사본을 만들고 다시 시도하십시오.
cp .env.example .env
php artisan key:generate
답변
나는 전에 같은 문제가 있었고 다음과 같이 수정했습니다 : config / app.php로 이동 "cipher" => "anything"
하여
'cipher' => MCRYPT_RIJNDAEL_128,
답변
이것을 실행하여 수정했습니다.
php artisan config:cache
답변
나는 단지 오류를 수정합니다.
Shift+Click
루트 프로젝트에서 “여기에서 명령 창 열기”를 마우스 오른쪽 버튼으로 클릭합니다.- 콘솔에서 :
"php artisan key:generate"
. config/app.php
좋아하는 32 자 ‘마크’가져 오기'key' => env('APP_KEY', 'insert get 32 char key')
, // 줄 번호 81
답변
제 경우에는 mcrypt 확장을 활성화해야합니다.
그러나 먼저 이미 가지고 있는지 확인하십시오.
$ sudo apt-get install -y mcrypt php5-mcrypt
mcrypt 모듈이로드되었는지 확인하십시오.
$ php -m | grep mcrypt
아무것도 표시되지 않으면은로드되지 않았기 때문입니다.하지만 이미 위의 오른쪽에 설치 했습니까? 이렇게하세요 :
$ php5enmod mcrypt
$ sudo service apache2 restart
다시 확인하면 아무것도 아닌 mcrypt가 표시됩니다. 좋은 징조입니다. 앱을 다시로드하고 다음 오류를 수정하세요.)
$ php -m | grep mcrypt
mcrypt
답변
루트 디렉토리에 .env.example
파일 이 있으면로 변경 .env
한 다음 php artisan key:generate
. 이것은 나를 위해 일했습니다.