0
0

(Amazon Linux 2023)AWS EC2にデプロイする④ GitHubとSSH接続する〜Laravelの初期設定を行う

Posted at

はじめに

前回からの続きです。

前提

  • インスタンス作成時にAmazon マシンイメージ (AMI)でAmazon Linux 2023を選択された方向けです
  • Amazon Linux2を選択された方も手順は同じですが、Linuxコマンドが異なります
  • AMIの調べ方は、EC2サーバーにSSH接続をし、下記のコマンドを入力すると確認できます
ターミナル
cat /etc/os-release

環境

  • PHP 8.2
  • Laravel 11
  • mariaDB 10.5.23
  • Nginx 1.24.0
  • GitHub

おおまかな流れについて

おおまかな流れは下記のとおりです。

  1. AWSでEC2のインスタンスを起動する(①で説明済)
  2. 起動したインスタンスにElastic IP(固定IP)を関連付ける(①で説明済)
  3. EC2サーバの初期設定を行う(②で説明済)
  4. PHPと拡張モジュールをインストールする(②で説明済)
  5. Composerをインストールする(②で説明済)
  6. mariaDBをインストールする(②で説明済)
  7. Nginxをインストールする(③で説明済)
  8. php-fpmとNginxを連携する(③で説明済)
  9. GitHubとSSH接続する
  10. GitHubからmainブランチのコードをクローンする
  11. Laravelの初期設定を行う
  12. RDSと連携する
  13. 独自ドメインを設定する
  14. 独自ドメインのSSL認証を行う
  15. 2回目以降のデプロイについて

GitHubとSSH接続する

まずは、Gitをインストールします。

ターミナル
sudo yum install -y git

インストール完了後、Gitのバージョンを確認します。

ターミナル
git --version

次に、GitHubとSSH接続するためのキーを作成します。

.sshディレクトリに移動します。

ターミナル
cd ~/.ssh

キーを作成します。

ターミナル
ssh-keygen -t rsa

いくつか質問項目があります

Enter file in which to save the key

そのままエンターを押してください。

Enter passphrase (empty for no passphrase): 

上記については、適当なパスフレーズを入力してください

Enter same passphrase again:

再度パスフレーズの入力が求められるので、入力すると、.sshディレクトリに、id_rsaとid_rsa.pubというファイルが生成されます。

次に公開鍵の中身をコピーします。

ターミナル
cat id_rsa.pub

上記のコマンドでターミナル画面に公開鍵の内容が表示されるので、コピーします。

次に、ブラウザを開き、GitHubのトップページに移動します。

アイコンをクリックします。

01_GitHub.png

メニューバー表示されるので、Settingsをクリックします。

02_GitHub.png

AcsessカテゴリーのSSH and GPC keysをクリックします。

03_Your-profile.png

New SSH keyをクリックします。

04_SSH-and-GPG-keys.png

Titleに識別しやすい任意の名前を入力し、Keyにさきほどid_rsa.pubファイルからコピーした内容をペーストし、Add SSh Keyをクリックすると、GitHubに接続用のSSH Keyが追加されます。

05_Add-new-SSH-key.png

次に、EC2インスタンスにSSH接続をしたターミナル画面に戻って、接続確認を行います。

まずは、ルートユーザーにスイッチします。

ターミナル
sudo su -

次に、バックグラウンドでSSHエージェントを起動します。

ターミナル
eval "$(ssh-agent -s)"

生成した秘密鍵をSSHエージェントに追加します。

ターミナル
ssh-add ~/.ssh/id_rsa

接続確認をします。

ターミナル
ssh -T git@github.com

下記のように表示されれば、接続設定は完了です。

Hi GitHubアカウント名! You've successfully authenticated, but GitHub does not provide shell access.

GitHubからmainブランチのコードをクローンする

まずはルートディレクトリに移動します。

ターミナル
cd /var/www/

SSH経由でクローンします。GitHubからSSH経由でのクローン用のアドレスをコピペしてください。

ターミナル
git clone プロジェクトのアドレス

これで、メインブランチにあるコードがクローンされます。

Laravelの初期設定を行う

まずは、Laravelプロジェクトのルートディレクトリに移動します。私の環境では下記のとおりです。

ターミナル
cd /var/www/drinko-app/laravel

次に、プロジェクトの依存関係をComposer経由でインストールします。

ターミナル
composer install

クローンしたファイルの中に.envファイルが存在しないので、.env.exampleを複製し、.envファイルを作成します。

ターミナル
sudo cp .env.example .env

.envファイルをご自身の環境に合わせて設定してください。

ターミナル
vim .env

.envファイル設定時の注意事項

  • vimに慣れておらず、行頭に#がついていてコメントアウトされている部分が有効だと思っていて、時間を無駄にしてしまったので、みなさんはお気をつけください、、、
  • APP_DEBUGは必ずfalseに設定してください。trueのままだと、漏れてはいけない情報がユーザーに漏れてしまう場合があります
  • LaravelSanctumを使用している場合は、SANCTUM_STATEFUL_DOMAINSに、通常のドメインと、API用のドメイン(サブドメインを切っている場合)を追加する必要があります
  • DBの設定については、RDSの設定が終わった後でなければ入力できない部分があるので、以降の作業で追加します。

次に、アプリケーションキー(APP_KEY)を生成します。以下のコマンドを実行することで、アプリケーションキー生成後、.envファイルのAPP_KEYに自動で値が入ります。

ターミナル
php artisan key:generate

ストレージに書き込み権限を加えます。

ターミナル
sudo chmod -R 777 storage

シンボリックリンクを作成します。

ターミナル
php artisan storage:link

最後にキャッシュをクリアします。

ターミナル
php artisan config:cache

これで、DB接続以外のLaravel上での設定が完了しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0