update.デプロイを行うLaravelで一通りのCRUD機能が実装できたので、一度デプロイをしようと思う。本当はAWSで行った方が勉強になるのだが、事前知識の習得に時間がかかることと諸々の事情により、先にHerokuというサービスを利用してデプロイを行うことにした。デプロイとは、時と場合により意味が異なるようだ。今回はアプリケーションを一般公開するという感じで使用している。Service、パース)と呼ばれるサービスだ。本来、デプロイには様々な環境構築や設定が必要になるが、それを一手に提供してくれる。他のPaaSにはCloud9が挙げられる。自分は今までLaravelで開発作業を行うために、自身で環境構築を行ってきた。Cloud9ではその必要がない。必要な環境は全て提供してくれる。このため、PaaSは初心者にとって非常にありがたいサービスである。今は無事Cloud9を卒業できた。Herokuについても、今回は使用するがいずれ卒業したい。今回の作業は、以下の環境を前提として行っている。herokuがインストールされている。Herokuに登録済みである。Herokuにクレジットカードを登録している。事前設定Herokuのアップデート最初にloginコマンドでHerokuにログインする。メールアドレスしばらく使用していなかったので、まずupdateコマンドを実行する。ちなみにHerokuもHomebrewで管理されている。省略モジュールの追加ここから、デプロイしたいアプリケーション(プロジェクト)のディレクトリに移動する。larabbsintl(国際化用拡張モジュール)は、Herokuでは自動で有効にならないため、composerを利用して有効にする。Herokuで使用する場合は、モジュール名の頭にextが付くため、ext-intlとして有効にする。ext-intl:*composer.jsonで有効になっていることを確認できた。省略サーバの設定アプリをApacheで動かすためにProcfileを作成し、必要な記述を行う。public/の記述により、ドキュメントルート(外部公開されるディレクトリ)を設定している。public/このまま作業を続けると、Herokuの通信プロトコルがhttpになってしまうそうだ。それをhttpsに変更するため、AppServiceProvider.phpへ以下の内容を記述する。}}Herokuでアプリ作成Herokuにアプリを作成する。createコマンド時にアプリ名を指定すれば、HerokuのURLにそれが反映される。(特に指定しなければランダムな単語で設定される。)アプリ名が既に使用されていた場合は、再登録を求められる。heroku/phpオプションを忘れずに付けること。heroku/phpローカルリポジトリにcommit後、Herokuにpushできる。masterこの段階でも、アプリ内にデータベースが関わらないページがあればビューの確認ができる。openコマンドを実行すると自動で規定のブラウザが起動し、アプリが開く。openHerokuでMySQLを利用MySQLはHerokuのデフォルトではないため、ClearDBアドオンを利用する。これを利用するためにはHerokuへのクレジットカード登録が必須である。(登録しても、無料枠で使えば課金されることはない。)自分がどのプランに設定されているか知りたい場合は、公式サイトにログインしDashboardからアプリ名を選択後、Resourcesタブで確認できる。addons:addコマンドを実行しよう。cleardb実行後、configコマンドでHerokuの環境変数CLEARDB_DATABASE_URLが確認できる。mysql://*****:*****@*****/*****?reconnect=true環境変数の設定ここが一番苦労した。これまでネットの情報を数多く利用してきたのだが、登録されている環境変数がサイトによって微妙〜〜に違う。環境が違えば登録する環境変数も違うことは当たり前だが、これが素人にとって大きな壁となる。登録はconfig:setコマンドで行う。内容を変更する場合は、同様のコマンドで上書きできる。v22登録した環境変数ここでは、自分が登録した内容を紹介する。したら必要のない環境変数もあるかもしれないが、参考になれば幸いである。localと同じ(file)注意すべきはデータベースの設定だ。自分はCLEARDB_DATABASE_URLの構成に気が付かなかった。mysql://[DB_USERNAME]:[DB_PASSWORD]@[DB_HOST]/[DB_DATABASE]?reconnect=trueデータベースの作成データベース関係の環境変数が誤っていると、延々とこのやり取りが繰り返される。refused正しい設定をして、ようやくデータベースの作成が出来た。migrateを入力して実行することも可能だ。migrateデータベースの作成が完了したら、いよいよopenコマンドの実行だ。この方達の情報がなければ作業は出来なかった。Herokuにdeploy-HerokuでMySQLを使おうとして詰まったところLaravel5をpostgresqlでHerokuにデプロイこれはteratailに自分が投稿した質問だ。上記サイト様に情報があったにも関わらず、見逃していた;【Heroku】LaravelでMySQLがmigrationできない。upLoginユーザーは見つかりませんでした。