はじめに
前回からの続きです。
前提
- インスタンス作成時に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
おおまかな流れについて
おおまかな流れは下記のとおりです。
-
AWSでEC2のインスタンスを起動する(①で説明済) -
起動したインスタンスにElastic IP(固定IP)を関連付ける(①で説明済) - EC2サーバの初期設定を行う
- PHPと拡張モジュールをインストールする
- Composerをインストールする
- mariaDBをインストールする
- Nginxをインストールする
- php-fpmとNginxを連携する
- GitHubとSSH接続する
- GitHubからmainブランチのコードをクローンする
- Laravelの初期設定を行う
- RDSと連携する
- 独自ドメインを設定する
- 独自ドメインのSSL認証を行う
- 2回目以降のデプロイについて
EC2サーバーの初期設定を行う
ダウンロードした.pemファイルを移動する
起動したインスタンスにSSH接続をするためには、プライベートキーを使う必要があります。そのため、まずは、①でダウンロードされた.pemファイルを.sshフォルダに移動させます。ターミナルを開き下記のコマンドを入力します。
# 1. .sshフォルダを作成(存在しない場合)
mkdir -p ~/.ssh
# 2. ダウンロードフォルダから.pemファイルを.sshフォルダに移動
mv ~/ダウンロード/your_file_name.pem ~/.ssh/
SSH接続をする
下記のコマンドを入力することで、SSH接続することが可能です。
ssh -i ~/.ssh/your_file_name.pem ec2-user@Elastic IPアドレス
SSH接続に成功すると、下記のような表示がでます。
A newer release of "Amazon Linux" is available.
Version 2023.5.20240701:
Version 2023.5.20240708:
Version 2023.5.20240722:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_
~\_ ####_ Amazon Linux 2023
~~ \_#####\
~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Sat Jul 20 09:58:20 2024 from 210.170.173.154
システム及びパッケージのアップデート
下記のコマンドを入力します。
sudo dnf -y update
タイムゾーンの設定
まずはタイムゾーンの確認を行います。初期状態であれば基本的にUTCになっていると思います。
timedatectl
下記のコマンドでタイムゾーンを変更します。
sudo timedatectl set-timezone Asia/Tokyo
もう一度タイムゾーンの確認を行い、変更されているか確認してください。
パッケージアップグレードの自動化
まずは、dnf-automatic パッケージをインストールします。
sudo dnf install -y dnf-automatic
次に、設定ファイルを編集します。
sudo vi /etc/dnf/automatic.conf
vimエディターで、編集画面に入るので、apply_updatesをyesに変更します。
[commands]
# What kind of upgrade to perform:
# default = all available upgrades
# security = only the security upgrades
upgrade_type = default
random_sleep = 0
# Maximum time in seconds to wait until the system is on-line and able to
# connect to remote repositories.
network_online_timeout = 60
# To just receive updates use dnf-automatic-notifyonly.timer
# Whether updates should be downloaded when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
download_updates = yes
# Whether updates should be applied when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
apply_updates = yes
vimエディターの操作方法がわからない場合は、下記の記事が参考になります。
https://zenn.dev/masatotezuka/articles/vim_command_220225
これで初期設定は終わりです。
PHPと拡張モジュールをインストールする
フレームワークに必要な拡張モジュールを調べる
Laravelの公式ドキュメントから、必要な拡張モジュールを調べます。
PHPと拡張モジュールをインストールする
私の環境に必要な拡張モジュールをすべてまとめてインストールしたところ、下記のコマンドになりました。
sudo dnf install php8.2 php-fpm php-ctype php-curl php-dom php-fileinfo php-filter php-hash php-mbstring php-openssl php-pcre php-pdo php-session php-tokenizer php-xml php-bcmath php-mysqlnd php-intl
PHPのバージョンを確認する
指定したバージョンがインストールされていれば問題ありません。
php -v
どの拡張モジュールがインストールされているか確認する。
すべての拡張モジュールがインストールされているか確認してください。
php -m
これで、PHPと拡張モジュールのインストールは完了です。
Composerをインストールする
公式サイトを確認し、インストールします。
# 必ず公式サイトを確認してください。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
移動&リネーム(パスを通す)
sudo mv composer.phar /usr/local/bin/composer
バージョンを確認する
composer -v
これで、Composerのインストールは終了です。
mariaDBをインストールする
sudo dnf install mariadb105
バージョンを確認する
mariadb --version
おわりに
今回は、作成したEC2インスタンスにSSH接続し、初期設定を行った後に、PHP、拡張モジュール、Composer、mariaDBをインストールするところまで説明しました。次回は、Nginxをインストールするところから記事化したいと思います。
間違っている点や補足情報等ありましたら、ご教授いただけますと幸いです!