【デプロイ】リポジトリからの環境構築①(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
Ⅲ. 本番環境の設定
Ⅳ. 本番データの投入
Ⅴ. 動作確認、本番環境の更新

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

今回は、「Ⅰ. Conoha WINGでサーバーを作成し、Cloud9からサーバーへログイン」に関する記事です。

Clone作業を始める前に、Cloud9とConohaのPHPのバージョンを合わせる必要があります。
(Clone作業に直接影響を受けるわけではありませんが、この作業を怠ると後々面倒になります。)

どっちに合わせるかはお任せしますが、
・Cloud9の方のバージョンを変えてしまうと、それまで作ったプログラムが思った通りに動かなくなる恐れがあるため、今回は「ConohaのPHPのバージョンを編集する」方法をお伝えします。

##### ConohaのPHPのバージョンを編集する方法
これに関しては、Conoha公式ページで分かりやすく書いていますので、以下URLからご確認ください。
https://support.conoha.jp/w/configphp/?btn_id=search

さて、本題の方に移ります。
#### Ⅰ. Conoha WINGでサーバーを作成し、Cloud9からサーバーへログイン
SSHキーをConoha WINGで取得し、それを利用してサーバーへアクセスします。
・Conoha WINGのトップ画面から、サーバー管理 → SSH → +SSH key の順にクリック
![Laravel最終課題 備忘録 (2).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/ef51ad87-1f6f-c209-93e4-54b82d427431.jpeg)
・SSHキーの名前を聞かれるので、ネームタグに任意の名前を入力し、保存をクリック
![Laravel最終課題 備忘録 (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/b5d22cc5-d41a-23a3-4a94-6d1cd4354a4e.jpeg)
・以下のウインドウが表示されるので、ダウンロードをクリック。![Laravel最終課題 備忘録 (3).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/42ed4571-523a-ab22-584f-3e4178295b35.jpeg)
ダウンロードしたファイルは、紛失すると接続ができなくなるので、大切に保管しましょう。
一般的には、ユーザーディレクトリ直下に.sshというフォルダを作ってその中に保管します。(下図参照)![Laravel最終課題 備忘録 (4).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/606efa7a-1649-8081-327a-87d0008d4976.jpeg)
・ダウンロードしたら、ConohaのSSHキーをクリックするとそのキーの詳細が確認できます。
![Laravel最終課題 備忘録 (5).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/4b408a9c-9b11-bb59-9146-d2e07e04768a.jpeg)
・下図に示す `~/environment/` に、作成した.sshフォルダをドラッグ＆ドロップで入れる。
![Laravel最終課題 備忘録 (6).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/ce3e5c52-28ab-a5ce-692f-aeeb8a19f36f.jpeg)
・この時点で、.sshフォルダは `~/environment/` の直下に入っているが、それを `mvコマンド` を使って、`~/` の直下に移動する。
・ちゃんと.sshフォルダが `~/` の直下に保存されているかコマンドで確認する。
<font color="red">※ `lsコマンド` だと.sshフォルダは表示されないので、`ls -allコマンド` を使う！</font>
![Laravel最終課題 備忘録 (7).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/e508f4b3-1a75-370d-500d-960fea5a810c.jpeg)
・`chmod 600 キーファイル名.pem` でパーミッションを600(所有者のみ読み書き許可)にする。

ここまでで、Cloud9からConoha WINGのサーバーにログインする準備は完了です。
・最後に、`sshコマンド` でConoha WINGに接続しましょう。
`ssh -i ~/.ssh/(秘密鍵のファイル名) -p (sshのポート番号) (sshユーザー名)@(サーバーのドメイン名)`
![Laravel最終課題 備忘録 (9).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/2484f943-cbff-2807-a964-17b764a51b43.jpeg)
![Laravel最終課題 備忘録 (8).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2835861/3bf96298-9236-d13e-db73-76c4ba980ab1.jpeg)
・上図のように、Cloud9のターミナル内で[ ]になっていれば、サーバーにアクセスできている状態を示します。
サーバーにログインする度に、上記の`sshコマンド` を打つ必要があります。
それが面倒な方は、以下の記事より設定を変えると、`ssh 任意の名前` を入力するだけでサーバーにログインできます。
https://blog-and-destroy.com/20409

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

今回は、「Conoha WINGでサーバーを作成し、Cloud9からサーバーへログイン」する方法をお伝えさせていただきました。

次回からは、Cloud9のターミナルを使ってConoha WINGのサーバー(本番環境)にログインし、本番環境にClone先のフォルダを作成していきたいと思います。

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