【デプロイ】リポジトリからの環境構築③(Laravel)

この記事では以下の環境で行ったものです。
・OS：Windows10 Pro
・IDE(統合開発環境)：Cloud9
・Cloud9に入っているPHPバージョン：7.4.30
・レンタルサーバー：Conoha WING
・Conohaに入っているPHPバージョン：8.1.12
・バージョン管理システム：GitHub

ここでは、<font color='red'>「Cloud9(ローカル環境)で作成したLaravelプログラムがGitHubと繋がっている」</font>という前提で、そのプログラムをCloneし、Conoha WINGのサーバーを使って、本番環境に公開(デプロイ)する方法をお伝えします。

＜方針＞
Ⅰ. Conoha WINGでサーバーを作成し、Cloud9からサーバーへログイン
Ⅱ. GithubのプログラムをClone
Ⅲ. 本番環境の設定
Ⅳ. 本番データの投入
Ⅴ. 動作確認、本番環境の更新

長編になるため、方針ごとで記事を分けております。

今回は、「Ⅲ. 本番環境の設定」に関する記事です。

前編Ⅰ、Ⅱの記事は下記URLからご覧ください。
「Ⅰ. Conoha WINGでサーバーを作成し、Cloud9からサーバーへログイン」
https://qiita.com/kamitch/items/87030f98e5deb49badf9
「Ⅱ. GithubのプログラムをClone」
https://qiita.com/kamitch/items/a0c1198f65f8c8e837ee

#### Ⅲ. 本番環境の設定
・前編の記事で、GitHubにあるプログラムをクローンで取得しましたが、データベースはまだ取得できていません。ですので、ここでデータベースを作成しましょう。
##### ①データベースの作成
・Conoha WINGの管理画面 → データベース → +データベースの順にクリック

・データベースとネームタグを入力し、保存ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/cd4c0a56-5ebc-a9e3-0839-18208a96b341.png)

次に、データベースを利用するユーザーを作成します。
・ユーザー → +ユーザーの順にクリックし、ユーザー名、パスワード、接続先データベースを入力し、最後に保存ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/770f827d-9a91-df6d-14e5-f98602094426.png)

これで、作成したデータベースとユーザーがリンクしました。実際にphpMyAdminにあるか確認しましょう。
・先ほど決めたユーザー名 → phpMyAdminのリンクをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/8583a1b8-8b2a-e079-3a02-1907862241bf.png)
・phpMyAdminのログイン画面に遷移するので、先ほど決めたユーザー名・パスワードを入力しましょう。
・下図に示す部分に、先ほど決めたデータベース名があればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/c599bf02-1db9-157e-9ba9-db1a11e9eea9.png)

これで、クローンしたプログラム(Laravelプロジェクト)用のデータベースを作成しました。
ただ、この作業はデータベースの箱を作っただけにすぎず、クローンしたプログラムと紐付けできていません。
その紐付けの作業を次でやっていきましょう。
##### ②.envファイルの修正
.envファイルは、Laravelプロジェクトのデータベースの設定(どのデータベースを紐付けるかの設定)などを行うファイルです。
Conohaのファイルマネージャーからファイルを選択して直接編集することもできますが、今回はCloud9のターミナルを使ってサーバーに入っているファイルを編集していきましょう。

・Ⅰで説明した`sshコマンド` でサーバーにログインし、`cdコマンド`でクローン先のフォルダに移動しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/fb1f0a66-bb96-84c5-130e-e801bcf4f02c.png)
・`cp .env.example .env` で、.envを.env.exampleからコピーしましょう。

これで、中身が空っぽだった.envファイルが、.env.exampleの内容に書き換えられました。

・次に、.envファイルのDBの接続情報を修正しましょう。
ターミナルで`vim .env`を入力すると、.envファイルの中身が表示されます。
DB_XXXXについて修正してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/defeb3ec-8e9b-ca14-15fd-9d176ba04d2d.png)

・修正が完了したら、Escキーを押した後、`:wq` でエンターを押すと.envファイルから抜けて、普段のターミナル画面に戻ります。
分からない方は、下記をご覧ください。
https://kaworu.jpn.org/vim/vim%E3%82%92%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

これにて、データベースとLaravelプロジェクトがリンクすることができました！

##### ③必要なライブラリのインストール
・次は、php関連のライブラリをインストールしましょう。
ターミナルのフォルダ先は、引き続きクローン先のフォルダにしておき、
`~/composer.phar install` を入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/e4c9bd1c-69fd-2632-800a-a4dc2ff21be0.png)
これで、Laravelプロジェクトで利用される各種php系のモジュールがvenderフォルダにまとめてインストールされます。

##### ④アプリケーションキーの初期化
最後に、`php artisan key:generate` を入力しましょう。これを忘れると動作しないです。
#### あとがき
いかがでしたしょうか。

今回は、「本番環境の設定」する方法をお伝えさせていただきました。

現時点ではまだデータベースのテーブルが空っぽで、クローン元のテーブル情報を反映させる必要があります。
次回は、「本番データの投入」ということでデータベースの編集を行っていきたいと思います。

できるだけ細かく書いたつもりですが、分からないことなどありましたら、ぜひコメントなどお願いいたします。