【デプロイ】リポジトリからの環境構築⑤(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
「Ⅲ. 本番環境の設定」
https://qiita.com/kamitch/items/e6422eb5ec7b5fd84459
「Ⅳ. 本番データの投入」
https://qiita.com/kamitch/items/1a02f6564a98cfd51659

#### Ⅴ. 動作確認、本番環境の更新
前編までで、デプロイするための事前作業はあらかた完了しました。
今回で、デプロイできたことを確認(動作確認)し、ローカル開発環境で変更した内容を本番環境に反映(本番環境の更新)する所までお伝えします。

##### ①クローンしたLaravelプロジェクトの移動
・クローンしたLaravelプロジェクトをデプロイするには、Laravelプロジェクトのフォルダを`~/public_html/独自ドメイン名`(ドメインのルートディレクトリ) に移動させる必要があります。

Conohaのファイルマネージャーからフォルダを選択して直接移動させることもできますが、今回はCloud9のターミナルを使って移動する方法をお伝えします。

・`cd ~` でトップ階層に移動します。

・`mvコマンド` で、クローンしたLaravelプロジェクトを`~/public_html/独自ドメイン名`(ドメインのルートディレクトリ) に移動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/2bd83e8d-4c3b-0328-26ef-e78bbc61f819.png)
・Conohaのファイルマネージャーで、`~/public_html/独自ドメイン名`(ドメインのルートディレクトリ) の直下にクローンしたLaravelプロジェクトが移動しているか確認しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/3aeed9b9-350a-ff14-4b8f-15631529c31a.png)
次に、「独自ドメインのindex.phpにアクセスすると、自動的にLaravelプロジェクトの`public/index.php` にアクセス」するように設定を変更します。

##### ②シンボリックリンクの作成
何も設定せずに、`http://独自ドメイン名/Laravelプロジェクト名/index.php` でアクセスすると、初期状態で用意されているindex.phpの中身が表示されます。
これを、Laravelプロジェクトのトップ画面(一番最初に表示させたい画面)に変更することをします。

・`cd  public_html/独自ドメイン名/Laravelプロジェクト名` に移動しましょう。

・`rm index.php` で、初期状態で用意されているindex.phpを削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/be9070f3-faeb-8039-f547-29900278d251.png)
・`ln -sコマンド` で、シンボリックリンクを張りましょう。
`ln -s public/index.php index.php`
`ln -s public/css ./css`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/cfa58559-7aa4-e5b2-e78f-46d18e88b470.png)
・Conohaのファイルマネージャーで、`~/public_html/独自ドメイン名/Laravelプロジェクト` の直下にシンボリックリンクが出来ているか確認しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/a83d563d-2578-3517-e815-bede81e578f7.png)

##### ③.htaccess の書き換え
続いて、全てのアクセスを `public/index.php` でうけるために .htaccessファイルの追記を行います。

・`cdコマンド` で、`~/public_html/独自ドメイン名/Laravelプロジェクト名` に移動します。

・`vim .htaccess` で、.htaccessファイルを以下に書き換えます。

`<IfModule mod_rewrite.c>`
&emsp; `RewriteEngine On`
&emsp; `RewriteCond %{REQUEST_FILENAME} !-f`
&emsp; `RewriteRule ^ index.php [L]`
`</IfModule>`

・修正が完了したら、Escキーを押した後、:wq でエンターを押すと.htaccessファイルから抜けて、普段のターミナル画面に戻ります。
分からない方は、下記をご覧ください。
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

これにて、デプロイの準備は完了です！
最後に、本当にブラウザに表示されるか確認しましょう！

##### ④動作確認
・`https://独自ドメイン名/Laravelプロジェクト名/index.php` でアクセスしてみて、Laravelプロジェクトのトップ画面が表示されたらOKです！

##### ⑤本番環境の更新
・ローカル開発環境で変更した内容を本番環境に反映(本番環境の更新)するには、
`git pullコマンド` を使いましょう。
実行後、下図のように`Already up-to-date.` となっていれば、GitHub内のプログラムとサーバー内のプログラムは一緒であることを意味しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/dc1c98ea-bad7-a8d7-c0ec-1380c0202784.png)

##### あとがき
いかがでしたしょうか。

5回に分けて、「リポジトリからの環境構築(Laravel編)」をお伝えさせていただきました。

サーバーはConoha WING、IDEはCloud9という組み合わせでデプロイすることは稀で煩雑なやり方かもしれませんが、煩雑であるからこそ他の環境構築をする時は楽に感じるかもしれないので、この環境構築を行って良かったと思っています。

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