it-source

larabel 지원되는 암호화기를 찾을 수 없습니다.암호 및/또는 키 길이가 잘못되었습니다.

criticalcode 2023. 2. 2. 21:08
반응형

larabel 지원되는 암호화기를 찾을 수 없습니다.암호 및/또는 키 길이가 잘못되었습니다.

저는 라라벨을 사용하여 프로젝트를 만들고 있습니다.로컬 호스트에서는 정상적으로 동작하고 있었지만, 서버에 업 로드하면(서버에 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 artisan key:generate

또한 app.php에서 이 키를 변경하지 않으면 수동으로 변경하십시오.


다음에, 다음의 에러 메세지가 표시되는 경우는, 다음과 같습니다.

[오류 예외]
file_get_filenv(/path/to/my/project/.env): 스트림을 열지 못했습니다.해당 파일 또는 디렉터리가 없습니다.

그런 다음 의 복사본을 만듭니다..env.example파일을 저장하고 다시 시도합니다.

cp .env.example .env
php artisan key:generate

서버에 필요한 확장 기능이 모두 설치되어 있습니까?

  • PHP > = 5.5.9
  • OpenSSL PHP 확장
  • PDO PHP 확장
  • Mbstring PHP 확장자
  • 토큰라이저 PHP 확장

OpenSSL 확장자가 없을 수 있습니다.또, 열쇠가 세팅되어 있습니까?.env파일링?


실행 시도:

php artisan key:generate


답변:'cipher' => ''설정되지 않았습니다.

다음을 실행하여 수정했습니다.

php artisan config:cache

이전에도 같은 문제가 있었는데 다음과 같이 수정했습니다.config/app.php로 이동, 변경"cipher" => "anything"로.

'cipher' => MCRYPT_RIJNDAEL_128,

오류를 수정하는 것뿐입니다.

  1. Shift+Click마우스 오른쪽 버튼을 눌러 루트 프로젝트의 "여기에 추천 창 열기"를 선택합니다.
  2. 콘솔 쓰기:"php artisan key:generate".
  3. 32글자의 '마크'를 취득하다config/app.php맘에 들다'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이건 나한테 효과가 있었어.

콘솔로 쓰다php artisan key:generate

다음과 같은 메시지가 나타납니다.Application key [get 32 char key] set successfully.

앱 키 교체config/app.php맘에 들다'key' => env('APP_KEY', 'insert get 32 char key'),//line number 81

해결 방법:

php 장인 키: 생성

.env 파일에서 키를 읽는 대신 app.env 컨피규레이션파일을 사용하는 경우 다음과 같이 키 변수에서 env() 함수를 삭제할 수 있습니다.

'key' = env('someRandom36CharsString'),

로.

'key' = 'someRandom36CharsString',

가동 중인 Ubuntu 서버에 대한 전개를 해결할 수 있었습니다.다음은 모든 절차입니다.

PHP > = 5.5.9 확인

OpenSSL, Mbstring, Tokenizer 및 mcrypt가 설치되어 있는지 확인합니다.

PHP(Ubuntu)에 mcrypt를 설치하려면:

sudo apt-get install php5-mcrypt,
sudo php5enmod mcrypt

저장소 폴더 쓰기 가능:

chmod -R 0777 storage

Apache가 Lavarel / public 폴더를 홈으로 사용하도록 합니다.

DocumentRoot /home/code2/public_html/Laravel-Project/public
    <Directory "/home/code2/public_html/Laravel-Project/public”> 
         AllowOverride all 
    </Directory>

Major 하지 않을 수 는 숨김 파일을 복사하지 않습니다..env ★★★★★★★★★★★★★★★★★」/public/.htaccess★★★★★★★★★★★★★★★★★★★!

위의 작업을 완료한 후 Ubuntu 서버에서 작동했습니다.

키가 부트스트랩\cache\config.php에 캐시되어 있는 것을 발견할 때까지 몇 시간 동안 이 문제에 시달렸습니다.파일을 삭제하면 사이트가 정상적으로 로드됩니다(그 이외의 경우는 설정에 문제가 없었습니다).

이를 확인하려면 boostrap\cache\compiled에 디버깅 출력을 추가합니다.php를 사용하여 암호와 키를 뱉습니다(7010 행 주위에 표시).그런 다음 설정을 어떻게 선택했는지 조사해보니 캐시 설정 파일이 사용되고 있습니다.

기계에 이 요구 사항이 있는지 확인하십시오.

  1. PHP > = 5.6.4
  2. OpenSSL PHP 확장
  3. PDO PHP 확장
  4. Mbstring PHP 확장자
  5. 토큰라이저 PHP 확장
  6. XML PHP 확장

그런 다음 프로젝트 설치 또는 업데이트 후

컴포저 갱신

이 일이 있고 나면..

.env.module

복제하고 이름을...

.env

데이터베이스 구성 또는 기타 필요한 변경 사항에 따라 변경할 수 있습니다.

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

마지막으로 응용 프로그램 키를 생성합니다.

php 장인 키: 생성

'누군가는 마지막 단계일 수도 있다'는 것만으로 충분합니다.하지만 나는 어떤 큰 프로젝트를 복제할 때마다 이 문제를 겪는다.이 모든 단계를 거치면 위험이 따릅니다.

"illuminate/html": "~5.0"composer.json파일입니다.이렇게요.

...
"require": {
    ...
    "illuminate/html": "~5.0"
    ...
},
...

다음 " " " " 를 실행합니다.composer install명령어를 입력합니다.composer install달리다php artisan key:generate 다음과 하다

Application key [get 32 char key] set successfully.

오래된 에서는 "라라벨"에서 암호 ./config/app.phpAES-256-CBC'AES-128-CBC로 합니다.AES-256-CBC'는 'AES-128-CBC'입니다.

confing/app.php의 디폴트 암호는 "AES-256-CBC"로 32글자의 스트링이 필요하며 암호 "AES-128-CBC"는 16글자만 필요합니다.

「」를 입력합니다.php artisan key:generate이치노

새로운 버전

 'cipher' => 'AES-256-CBC',

구판

 'cipher' => 'AES-128-CBC',

언급URL : https://stackoverflow.com/questions/31512970/laravel-no-supported-encrypter-found-the-cipher-and-or-key-length-are-invalid

반응형