지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다. 라 라벨 5.3


82

composer를 사용하여 Laravel 5.3의 새 복사본을 설치했지만이 오류가 발생합니다.

지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다. 구성 디렉토리의 내 app.php 파일이
'cipher'=> 'AES-128-CBC'를 지정하더라도


이 github [문제점] [1]을 참조하십시오.
LF00

나는이 문제가 있고 그것은 완전히 무작위입니다 ... 내 요청의 90 %가 오류없이 처리되고 로그에 이와 함께 HTTP 500 하나가 표시됩니다.
Alexandre Martini

새로 설치 한 경우 다음 명령을 사용하여 공용 디렉토리에 저장소의 심볼릭 링크를 만듭니다. php artisan storage : link
user3314639

답변:


119

appication 폴더에 .env 가 있어야하며 다음을 실행해야합니다.

$ php artisan key:generate

.env.example 에서 .env 사본 이없는 경우 :

$ cp .env.example .env

1
새로 설치할 때도 정확한 문제가 있습니다. 키 생성기를 실행하고 삭제하고 다시 캐시했습니다. .env 파일을 확인한 결과 키가 성공적으로 삽입되었지만 오류가 계속 발생합니다.
Rottingham

@Rottingham, config / app.php에 'key'와 'cipher'가 무엇입니까?
Mugoma J. Okomba

2
나는 ciper와 같은 AES-256-CBC를 가지고 있었고 KEY는 env ( 'APP_KEY'); 내 문제가 key : generate가 .env파일을 바꾸는 대신 파일에 키를 연결한다는 것을 발견 했습니다.
Rottingham

1
@CodeCanyon stackoverflow.com/a/40709643/1008916에서 제안한대로 키 길이를 확인하려고 했습니까?
Mugoma J. Okomba

1
"이 명령을 실행하기 만하면됩니다."는 좋은 대답이 아닙니다. 문제를 해결할 수는 있지만 정확히 무엇을하고 있는지 더 깊이 이해할 수는 없습니다. 또한 이러한 값이 프로덕션 서버와 개발 서버 및 워크 스테이션에서 동일해야하는지 여부에 대해서도 대답하지 않습니다.
S. 임프

39

을 실행 php artisan key:generate합니다.

수행 php artisan config:clear,

그때 php artisan config:cache

그리고 일이 시작됩니다!


1
시도했지만 여전히 작동하지 않으며 이전과 동일한 오류가 표시됩니다.
Black

22

터미널에서 다음 명령을 실행하십시오.

php artisan config : clear
then
php artisan config : cache


2
PS 또는 FYI처럼
-config

.env 파일과 APP_KEY 값이 있는데 제 경우에는 작동합니다. 감사.
Setar

10

좋아, 이것은 기본적으로 이미 답변을 받았지만 그 두 가지 중 하나가 변비 또는 변비에 해당하는 몇 가지 경고를 발견했습니다.

먼저 이미 말했듯 .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 버그로 보입니다.

이 답변이 동일한 문제 또는 성가신 버그로 어려움을 겪고있는 모든 사람에게 도움이되기를 바랍니다.


나도이 문제에 직면하고 있지만 가끔씩 만 나타납니다. 키가 정확하므로 다른 문제가 진행 중이라고 가정합니다. Lee가 제안한 구성 캐싱을 수행했으며 어떻게 진행되는지 볼 것입니다. 참고로 파일에 다른 액세스 토큰이 많이 있으므로 그중 하나가 문제를 일으킬 있습니다. 그러나 만약 그렇다면 매번 일어날 것으로 기대합니다. (L5.4)
Mike Rockétt 2017

1
이 플러스 일 php artisan config:clearphp artisan config:cache, 내 설치를 해결했습니다.
zundi

@ MikeRockétt 여기에 논의가 있습니다 : github.com/laravel/framework/issues/9080 동시에 app_key를 가져 오는 여러 ajax 호출과 첫 번째 호출에서 잠긴 .env 파일에 관한 것입니다. 권장되는 수정 사항은 프로덕션에서 .env를 호출하지 않고 캐시를 사용하는 것입니까?
nwolybug

9

해당 시스템에서 처음으로 Laravel 프로젝트를 실행하는 경우 필요한 요구 사항 이 있는지 확인하십시오 . 프로젝트 디렉토리에서 CMD / 터미널을 열거 나

cd to/your/project/dir

이 명령을 다시 제공하십시오.

composer update

당신의 변화 .env.example하는 .env, 특히 데이터베이스 구성은 DB 오류를 방지하기 위해 해당 파일에 필요한 사항을 변경합니다. 그때

php artisan key:generate

이렇게하면 Laravel 프로젝트를 만들거나 git에서 복제 할 때마다 AES 암호 키 길이 문제가 해결됩니다.


9

이 단계를 따르세요:

1 단계 : 애플리케이션에 .env 파일이 있는지 확인합니다. cp .env.example .env

2 단계 : 이제 다음 명령 ( php artisan key:generate)을 실행 하여 키를 생성하면 자동으로 .env 파일에 저장됩니다.

3 단계 : php artisan config:cache구성을 캐시하려는 경우 실행 또는php artisan config:clear

바라건대 그것은 모든 것을 고칠 것입니다.


7

.env파일이 키를 제공하면 모든 작업이 완료된다

APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E

그래도 작동이 안되는?

CLI에서 작업하는 경우 서버를 재부팅하면됩니다.

설명을 원하십니까?

좋습니다. 오류 메시지에 다음과 같이 표시됩니다.

지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다.

의 키 길이 AES-128-CBC는 16 자입니다 (예 : ABCDEF123ERD456E).

에 대한 키 길이 AES-256-CBC는 32 자입니다 (예 : ABCDEF123ERD456EABCDEF123ERD456E).

확인에 확인 config/app.phpcipher위의 두 같은 적절한 암호로 설정되고 키가 가리키는 .env파일 APP_KEY변수입니다. 내 앱에는 AES-256-CBC암호 세트가 있으므로 32 자 키를 제공 APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E했고 그 후에는 모든 것이 잘 작동했습니다.


5

.env 파일에서 APP_KEY 값을 제거하고 다음 명령을 다시 실행하십시오.

php artisan key:generate
php artisan config:cache

끝난.


4

APP_KEY 가 설정되어 있지 않으면 .env 파일을 확인하십시오 . 문제입니다. 이제 실행 php artisan key:generate 한 다음 실행하십시오.php artisan config:cache

.env 파일에 APP_KEY 키를 설정 합니다.

경우 APP_KEY이 이미 설정되어 같은 명령을 실행합니다. 이 키를 업데이트합니다.


1

나는 또한이 문제가 있었다. "APP_KEY"에 대한 내 환경 변수 값을 확인합니다. echo $APP_KEY 나를 위해 다른 루멘 프로젝트에 대해 설정된 "루멘"이었고 이것이 작동하지 않는 이유입니다.

export APP_KEY=[you app_key value from .env file]캐시를 사용하여 "APP_KEY"값을 업데이트 하고 지웠 php artisan config:cache으며 저에게 효과적 이었습니다.


1

laravel 버전 5.4 PHP 7.4의 경우

  1. 해결 하려면이 명령을 실행하십시오.

php artisan key:generate

이 값을 설정합니다 APP_KEY=귀하의 .env파일

이 같은: APP_KEY=base64:trp5LQ9/TW85+17o0T7F0bZ/Ca1J9cIMgvyNIYl0k/g=

  1. 다음 명령으로 모든 것이 다시 작동하도록 캐시를 정리하십시오.

php artisan config:clear

그때 php artisan config:cache

도움이 되었기를 바랍니다.


0

확인해야 할 또 다른 사항은 .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


0

artisan 명령이 작동하지 않고 명령 줄에서 동일한 오류가 발생하면 composer가 모든 파일을 제대로 가져 오지 못했음을 의미 composer update합니다. 공급 업체 폴더를 삭제하고 다시 실행 해야합니다.


0

다음과 같은 명령으로 laravel 프로젝트를 새로 만들고 composer create-project --prefer-dist laravel/laravel marketcp 명령을 사용하여 새 저장소를 응용 프로그램 경로에 배포하면이 문제가 발생할 수 있습니다.

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 문제를 참조 할 수도 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.