Laravel開発、作成したアプリをデプロイして本番環境で動作させる【1】まずは表示させる
laravelでアプリ作成を継続してますが、せっかくなので完成品が見えるようになりたかったので、デプロイすることにしました。
Railsの学習でデプロイは経験したのですが、まだまだ知識不足なこともあり、言語の違いにより設定箇所が違ったりと、学習することが多かったので、実施内容を書きました。
やりたいこと
デプロイして本番環境で表示させること。
ずばりこれだけ。
やったこと
具体的にしたこと
まずはデプロイを実施
Rails学習時に一度Herokuによるデプロイを実践したことがあるので、まずLaravel特有の話とか気にせず、やってみました。
以前同様こちらの記事を参考にしました。ありがとうございます。
ところが、Web表示されず。そんな簡単にはいかないですよね…。
※最初のエラー画面のキャプチャとりそこないました…。
設定に何が足らないのか?
Herokuデプロイ + Laravel 関連でとりあえず調べる。
Procfileを設定
調べてまず分かったことはProcfileというファイルでどのプロセスを使うか宣言する必要があるということ。
これがない為に、プロセスがないまま動作しようとしてました。
設定方法はこちらを参考にさせて頂きました。ありがとうございます。
Procfileを準備してApacheを指定する設定を入れて、ファイルを作成ました。
このファイル、特に拡張子等はないようです。
# ~/Procfile
これで本番環境のWebページにアクセスすると、画面が変わりました。
エラー表示が変わるもエラーであることには変わりなしと。
本番環境のエラー確認
具体的に本番環境でどういうエラーが出ているのか確認したかったので、デバック関連を調べました。
そして、こちらを参考にさせて頂きました。ありがとうございます。
こちらを導入し、デバッグ設定をtrueにしてみました。
本番環境での確認を行う為に、GitHubでマージまで実施。
※実はここで、本番環境に反映されない状態に。変更をしたブランチを選択できていなかったというだけのミス…。
設定後、本番環境でアクセスすると出た画面がこちら。
本番環境の環境変数設定
encryption keyがない…。
本番環境での暗号化キー設定がなかったようです。
これも調べてみたんですが、ローカル環境の暗号化キー設定ばっかり出てきて調べ方がおかしいのかと小一時間悩みました…。
暗号化キーで検索するのをやめて、環境変数設定で検索すると欲しい回答が見つかりました。
暗号化キーの設定方法はこちらを参考にさせて頂きました。ありがとうございます。
コマンドはこちら
$ heroku config:set APP_KEY=設定するキー
これで本番環境の環境変数として値が設定できました。
ここで、環境変数の値の変更方法や削除方法も気になったので、併せて調べてみました。
設定変更方法はこちらを参考にさせて頂きました。ありがとうございます。
設定内容の確認や変更・削除までこれでできます。
分かってないと結構はまるけど、しっかり分かっているとけっこう簡単なことだったんですね…。
そして、設定する暗号化キーについて、キーの確認はローカル側の設定を見てそれを反映させました。コマンドはこちら。
$ php artisan key:generate --show
これで、再度トップページにアクセスすると、画面が表示されました。
HTTPS対応
ですが、これだけでは本番環境設定は終わりませんでした。
トップページはHttpsになっているのですが、サインイン画面に入るとHttp接続になってビューも崩れてしまっていました…。
対処について調べてみた結果、こちらを参考に修正をしました。ありがとうございます。
本番環境時は明示的にHttpsを使用する設定としました。こちらでHttpに接続されることがなくなりました。
ここまでで、まずトップ画面及びサインイン画面の表示までが完了しました。
この後、ログインしたかったのですが、本番環境のDBが準備できていないため接続できず…当然と言われればそうなのですが。
DBについては、まず現状がどういう設定なのかを改めて確認することをしました。
※デプロイしたWebサイトについては、データベース問題が解決指定ないものを公開する訳にもいきませんので、解決後にしたいと考えています。