質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

4300閲覧

LaravelのAPP_KEYについて

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/08/04 04:46

編集2019/08/04 06:54

現在Laravel 5.7を利用中で、作ったプロジェクトをデプロイしようとしているところです。

The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.
と、デプロイ後に出てしまい解決方法を探している段階で質問があります。
初心者で理解が追いついておらず、ご迷惑をお掛けしますが基本的なことでも構いませんご協力いただければと思います。

php artisan key:generate

これは試しました。(EnvにAPP_KEYは載っている)
→しかし、APP_KEY=base64:(マスクしています)= base64:以下の部分の文字数を数えたところ確かに43文字存在している感じがあります。
薄っすら調べた感じだと32文字が適切なようですが(間違いであればすみません。)、*どのようにして32文字で生成できるようにすればよいのでしょうか。

public function __construct($key, $cipher = 'AES-128-CBC') { $key = (string) $key; if (static::supported($key, $cipher)) { $this->key = $key; $this->cipher = $cipher; } else { throw new RuntimeException('The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.'); } }

Encrypter.phpにはこのように表記されておりましたので、このelseのifにあたる負の判定が起きていることは分かりました。

また、この件を解決するにあたってどのようなことを参照すればよいのかもわからず、まだまだ手探りな状態ですがよろしければお力をお貸しください。

追記:コメントでご指摘いただいた「php artisan key:generate」「php artisan config:cache」は実行済(エラー変わらず)、app.phpのcipher表記についても問題ありませんでした。そのほか思い当たる節がある方がいらっしゃいましたら、この二つは確認済みであることを踏まえてコメントにてアドバイス頂ければ幸いです。よろしくお願い致します。

追記(2):heroku上のactivity logです。このような順番で表示されていればサーバーでの実行はなされているでしょうか?もし認識が異なっておりましたらお手数ですがご指摘ください。
Herokuより

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

作ったプロジェクトをデプロイしようとしているところです。

The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.
と、デプロイ後に出てしまい

詳細な状況が良くわかりませんが、APP_KEY=base64...APP_KEY=に修正して(もとに戻して)、再度php artisan key:generateを実行ください。

投稿2019/08/04 05:22

編集2019/08/04 05:23
xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/04 05:26

コメントありがとうございます! アドバイス通り一度APP_KEYを空白状態にし、そののちにgenerateしなおしたのですがgenerateされるkeyの長さが32文字を超えているようでその状態でデプロイしなおしてもやはり同様のエラーが起きます。 これは(現在生成されているものが43文字?あるのですが、)勝手に文字数を削って保存してしまっても良いのでしょうか…
xenbeat

2019/08/04 05:27

回答の手順後に php artisan config:cache も実行してみてください。
退会済みユーザー

退会済みユーザー

2019/08/04 06:23

指示通りに試してみましたがだめそうでした_( _´ω`)_ エラー文も変わらず以前のものと同じです。またいろいろ試してみますが何か他にもありましたらアドバイス頂ければ幸いです。
xenbeat

2019/08/04 06:38

> keyの長さが32文字を超えているようでその状態でデプロイしなおしても 回答した手順をデプロイ先のサーバーで実行するんですよ? ローカルで生成したキーをそのままデプロイするんじゃなくて。
退会済みユーザー

退会済みユーザー

2019/08/04 06:45

申し訳ありません、順番についての理解が及んでいなかったようです。 一応、デプロイする→keyのセット、という順番で行いましてそれで一度更新をしましたがエラーが同じ状態でしたのでさらに上書きでデプロイする必要があるのかと思っていました。その際のheroku上のactivity logを本文に添付します。 同時に、デプロイ→key:generate→config:cacheの順でもう一度試してみます。
退会済みユーザー

退会済みユーザー

2019/08/04 06:56

お手数をお掛けしてすみません。たしかに書き出しておくべきでしたね。エラーについて調べたところHerokuのみでなくどこでも起こりうるような感じだったので除外してしまいました。 リンクの方確認して試してみます。進捗がありましたらまたご報告します。
退会済みユーザー

退会済みユーザー

2019/08/04 08:14

先ほど添付していただいたheroku上のAPP KEYの指定などはすべて事前に行っておりましたので、問題点がピンポイントかわからないのですが、一度app自体を作り直して、もう一人の方のコメントの通りのパーミッション関連も同時に試しデプロイしたところ、正常に動作しました。 色々試し過ぎてどこまでやったかわからなくなってしまっておりましたのでアドバイスを頂けて助かりました。ありがとうございました!
xenbeat

2019/08/04 08:16

解決できてよかったです!
guest

0

ベストアンサー

./config/app.php

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

に変更

投稿2019/08/04 06:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/04 06:36

ご指摘いただいた箇所については元からそのように記述されております。 こちらの記載不足で申し訳ありません。ですが、そのように記述されていた場合32文字で生成されるはずですよね…他の箇所が影響してしまっていないか探してみたいと思います。
退会済みユーザー

退会済みユーザー

2019/08/04 06:46 編集

じゃあ、cacheがちゃんと書き換わっていないのでしょうから、 ./bootstrap/cache/config.php を手動で削除してみてください。 再度自動で作られますから。 デプロイした時に `bootstrap` に書き込み権限与えてないのでは?
退会済みユーザー

退会済みユーザー

2019/08/04 06:59

アドバイス頂いたconfig.phpの削除を試してみたいと思います。 確かにご指摘いただいたとおり、bootstrapに対してパーミッションをいじった覚えがないので早速検索してやってみたいと思います。また進捗ありましたらご報告します。
退会済みユーザー

退会済みユーザー

2019/08/04 08:16

先ほどのご指摘の通り、パーミッションを与えてキーの自動生成を行ったところ32文字になった様子でした。もうおひとりの方のアドバイスと並行してやっていたので、これが直接の原因かどうかは申し訳ありませんが判別がつきませんでしたが、32文字で生成ができたというのが非常に助かりました。どうもありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問