composer를 사용하여 Laravel 5.3의 새 복사본을 설치했지만이 오류가 발생합니다.
지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다. 구성 디렉토리의 내 app.php 파일이
'cipher'=> 'AES-128-CBC'를 지정하더라도
composer를 사용하여 Laravel 5.3의 새 복사본을 설치했지만이 오류가 발생합니다.
지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다. 구성 디렉토리의 내 app.php 파일이
'cipher'=> 'AES-128-CBC'를 지정하더라도
답변:
appication 폴더에 .env 가 있어야하며 다음을 실행해야합니다.
$ php artisan key:generate
.env.example 에서 .env 사본 이없는 경우 :
$ cp .env.example .env
.env
파일을 바꾸는 대신 파일에 키를 연결한다는 것을 발견 했습니다.
좋아, 이것은 기본적으로 이미 답변을 받았지만 그 두 가지 중 하나가 변비 또는 변비에 해당하는 몇 가지 경고를 발견했습니다.
먼저 이미 말했듯 .env
이 기존 .env.example
파일을 다음과 같이 복사하여 터미널에서 수행 할 수 있는 유효한 파일이 있는지 확인해야합니다 .
$ cp .env.example .env
그런 다음 애플리케이션 키를 생성하십시오.
$ php artisan key:generate
이 작업이 완료되면 .env 파일을 열고 APP_KEY 행이 올바른지 확인하십시오. 이것이 내 경악의 출처입니다.
APP_KEY=base64:MsUJo+qAhIVGPx52r1mbxCYn5YbWtCx8FQ7pTaHEvRo=base64:Ign7MpdXw4FMI5ai7SXXiU2vbraqhyEK1NniKPNJKGY=
키 길이가 잘못되었음을 알 수 있습니다. 알 수없는 이유로 (아마 key : generate를 여러 번 실행 base64=
하여) 거기에 두 개의 키가 있습니다. 하나를 제거하면 문제가 해결되고 Artisan / Laravel 버그로 보입니다.
이 답변이 동일한 문제 또는 성가신 버그로 어려움을 겪고있는 모든 사람에게 도움이되기를 바랍니다.
php artisan config:clear
후 php artisan config:cache
, 내 설치를 해결했습니다.
해당 시스템에서 처음으로 Laravel 프로젝트를 실행하는 경우 필요한 요구 사항 이 있는지 확인하십시오 . 프로젝트 디렉토리에서 CMD / 터미널을 열거 나
cd to/your/project/dir
이 명령을 다시 제공하십시오.
composer update
당신의 변화 .env.example
하는 .env
, 특히 데이터베이스 구성은 DB 오류를 방지하기 위해 해당 파일에 필요한 사항을 변경합니다. 그때
php artisan key:generate
이렇게하면 Laravel 프로젝트를 만들거나 git에서 복제 할 때마다 AES 암호 키 길이 문제가 해결됩니다.
에 .env
파일이 키를 제공하면 모든 작업이 완료된다
APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E
그래도 작동이 안되는?
CLI에서 작업하는 경우 서버를 재부팅하면됩니다.
설명을 원하십니까?
좋습니다. 오류 메시지에 다음과 같이 표시됩니다.
지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다.
의 키 길이 AES-128-CBC
는 16 자입니다 (예 : ABCDEF123ERD456E).
에 대한 키 길이 AES-256-CBC
는 32 자입니다 (예 : ABCDEF123ERD456EABCDEF123ERD456E).
확인에 확인 config/app.php
은 cipher
위의 두 같은 적절한 암호로 설정되고 키가 가리키는 .env
파일 APP_KEY
변수입니다. 내 앱에는 AES-256-CBC
암호 세트가 있으므로 32 자 키를 제공 APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E
했고 그 후에는 모든 것이 잘 작동했습니다.
확인해야 할 또 다른 사항은 .env 파일이 www-data 그룹 (또는 httpd 또는 웹 서버 그룹에 관계없이)에 있고 그룹에 읽기 권한이 있는지 확인합니다.
Linux에서이 오류가 발생했을 때 내 권한은 다음과 같이 보입니다.
-rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env
그런 다음 모두에 대한 읽기 권한을 제거하고 그룹에 대한 쓰기 권한을 제거했습니다.
chmod 640 .env
그런 다음 그룹을 www-data로 변경했습니다.
chown kevin:www-data .env
이제 권한은 다음과 같습니다.
-rw-r----- 1 kevin www-data 516 Mar 16 09:35 .env
artisan 명령이 작동하지 않고 명령 줄에서 동일한 오류가 발생하면 composer가 모든 파일을 제대로 가져 오지 못했음을 의미 composer update
합니다. 공급 업체 폴더를 삭제하고 다시 실행 해야합니다.
다음과 같은 명령으로 laravel 프로젝트를 새로 만들고 composer create-project --prefer-dist laravel/laravel market
cp 명령을 사용하여 새 저장소를 응용 프로그램 경로에 배포하면이 문제가 발생할 수 있습니다.
laravel 5.4를 사용합니다.
roofe@www:~/market$ php artisan --version
Laravel Framework 5.4.33
laravel 프로젝트를 만들 때 다음과 같이 키를 만드는 로그를 볼 수 있습니다.
자동로드 파일 생성
Illuminate \ Foundation \ ComposerScripts :: postUpdate php artisan optimize 최적화 된 클래스 로더 생성하기 컴파일 된 서비스 파일이 제거되었습니다. php artisan key : Genrate Application key [base64 : exxxxxxxxxxxxxxxxxxxxxxxxxxxxxx / k =] set successfully.
기본적으로 config / app.php의 키 설정은 다음과 같 AES-256-CBC
으며 프로젝트 생성시 사용 하고 생성 된 키는 .env
파일에 저장 됩니다. 같은 명령을 사용 cp -r ./* /var/www/market/
하면 .env
파일이 응용 프로그램 경로로 이동되지 않습니다.
/* |-------------------------------------------------------------------------- | Encryption Key |-------------------------------------------------------------------------- | | This key is used by the Illuminate encrypter service and should be set | to a random, 32 character string, otherwise these encrypted strings | will not be safe. Please do this before deploying an application! | */ 'key' => env('APP_KEY'), 'cipher' => 'AES-256-CBC',
배포 명령을로 변경 cp -r ./* ./.env /var/www/market/
하면이 문제가 사라졌습니다.
이 github 문제를 참조 할 수도 있습니다 .