configuration - 唯一受支持的密碼是具有正確密鑰長度的AES-128-CBC和AES-256-CBC。 laravel 5.3




installation laravel-5.3 (8)

我使用composer安裝了laravel 5.3的新副本,但始終收到此錯誤:

唯一受支持的密碼是具有正確密鑰長度的AES-128-CBC和AES-256-CBC。 即使我的app.php文件在配置目錄中指定
'cipher'=>'AES-128-CBC',


.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 ,之後一切正常。


在終端上運行以下命令:

PHP的工匠配置:清除
然後
PHP的工匠配置:緩存


如果artisan命令不起作用,並且您在命令行中遇到相同的錯誤,則意味著composer在獲取所有文件方面做得不好,您應該刪除供應商文件夾並再次運行 composer update


如果您使用諸如 composer create-project --prefer-dist laravel/laravel market 類的命令新創建一個laravel項目,並使用cp命令將新存儲庫部署到應用程序路徑,則可能會遇到此問題。

我使用laravel 5.4

[email protected]:~/market$ php artisan --version
Laravel Framework 5.4.33

創建laravel項目時,可以看到創建密鑰的日誌,如下所示:

生成自動加載文件

Illuminate \ Foundation \ ComposerScripts :: postUpdate php artisan Optimize生成優化的類加載器已編譯的服務文件已被刪除。 php artisan key:生成應用程序密鑰[base64:exxxxxxxxxxxxxxxxxxxxxxxxxxx / k =]已成功設置。

默認情況下,config / app.php中的密鑰配置如下,它使用 AES-256-CBC 並且在創建項目時將生成的密鑰存儲在 .env 文件中。 如果使用 cp -r ./* /var/www/market/.env 命令,則 .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',

當我將我的deploy命令更改為 cp -r ./* ./.env /var/www/market/ ,此問題消失了。

您也可以參考此github github.com/laravel/framework/issues/9080


您需要在 appication 文件夾上具有 .env ,然後運行:

$ php artisan key:generate

如果您沒有 .env.example中的.env 副本:

$ cp .env.example .env

檢查您的.env文件是否未設置 APP_KEY ,這是問題所在,現在運行 php artisan key:generate 然後運行 php artisan config:cache

它將在您的.env文件中設置一個 APP_KEY 密鑰。

如果已設置 APP_KEY,請 運行相同的命令。 它將更新此密鑰。


運行 php artisan key:generate

php artisan config:clear

然後 php artisan config:cache

一切都會開始!


跟著這些步驟:

步驟1:確保您的應用程序中包含.env文件。如果未運行此命令 cp .env.example .env

步驟2:現在,運行以下命令( php artisan key:generate )生成一個密鑰,它將自動保存在.env文件中。

步驟3:運行 php artisan config:cache

它將解決所有問題。