1. はじめに
私は2023年10月より、内定直結型エンジニア学習プログラム「アプレンティス」に2期生として参加しています。
AWS について学んだので、Laravel API を AWS でデプロイする方法についてまとめました。
AWS に初めて触れる方の参考になれば幸いです。
シリーズ一覧
長編になっているので、複数の記事に分けて公開しています。
本記事はその第 5 弾です。
目次
1.はじめに
2.Laravel プロジェクトのクローン
3.API へリクエスト送信
16. Laravelプロジェクトのクローン
まずは、PHP 実行環境を整えます。
EC2 インスタンスにログインしましょう。
PHP のインストール
Amazon Linux2 には extras ライブラリというパッケージ群が存在していて、今回はそのコマンドを使って PHP 8.2 をインストールします。
sudo amazon-linux-extras install -y php8.2
PHP 関連の必要なライブラリをインストール
sudo yum -y install php-devel php-pdo php-mbstring php-mcrypt php-mysqlnd php-xml php-gd php-opcache php-pecl-zip
Laravel プロジェクトのクローン
GitHub リポジトリからイメージをクローンしてくるためには、まず Git をインストールする必要があります。
sudo yum -y install git
クローンして来られるように、ディレクトリの権限を変更しておきます。
sudo chmod 777 /var/www/html
ここでようやく、作成済みの Laravel プロジェクトを GitHub からクローンしてきます。
git clone <リポジトリ URL>
ls コマンドで、リポジトリがクローンされていることを確認します。

cd <プロジェクト名> で、プロジェクトルートに移動します。
composer インストール
パッケージ管理ツールの composer をインストールします。
curl -sS https://getcomposer.org/installer | php
composer の実行ファイルを移動します。
sudo mv composer.phar /usr/local/bin/composer
プロジェクトディレクトリに存在する package.json に記載されたライブラリをインストールします。
composer install

たくさんインストールされました。
ディレクトリのコピー
Apache が参照しに行くディレクトリは/var/www/html/なので、クローンしてきたプロジェクトディレクトリを丸ごと/var/www/html/にコピーします。
sudo cp -r * /var/www/html/
コピーできたか確認します。
ls -la /var/www/html

コピーできてることが確認できました。
storage, bootstrap ディレクトリの権限変更
cd /var/www/html/ で移動する。
以下コマンドで、権限を変更する。
sudo chmod 777 storage -R
sudo chmod 777 bootstrap/cache -R
.env ファイルの作成
vi .env で.envファイルを新規作成する。
内容は、ローカルの Laravel プロジェクトの.envファイルをコピペし、一部修正する。
修正箇所
- APP_URL:
<ドメイン名>:<ポート番号> - DB_HOST:
RDB インスタンスのエンドポイント - DB_DATABASE:
作成した MySQL データベース名 - DB_USERNAME:
作成した MySQL ユーザー名 - DB_PASSWORD:
作成した MySQL ユーザーのパスワード
Apache のドキュメントルート変更
この状態では、まだ パブリック IP アドレスにアクセスした時に、最初に見た Apache のページが表示されるだけです。
Laravel API に直接アクセスできるようにするには、ドキュメントルートを変更する必要があります。
Laravel はドキュメントルートを public ディレクトリにする必要があるので、そのように変更します。
vim を起動して、設定ファイルを編集します。
sudo vim /etc/httpd/conf/httpd.conf
-
DocumentRootをコメントアウトして、/var/www/html/publicに変更 -
< Directory "/var/www/html" >以下の、AllowOverride Noneをコメントアウトして、AllowOverride Allに変更
AllowOverrideは、上位ディレクトリで設定した設定値を、下位ディレクトリで変更する許可を与えるかどうかの設定です。
マイグレーション実行
マイグレーションが実行できれば、データベースへの接続は成功です!
php artisan migrate
接続できるか確認
ドメイン名で Laravel API にアクセスできるか確認します。

無事、API の画面が表示されました!
17. APIへリクエスト送信
データベースにダミーデータを挿入して、Postman から Laravel API にリクエストを送信し、正しくレスポンスが返ってくるか確認します。
ダミーデータ挿入
ダミーデータ挿入用の Factory, Seeder ファイルは既に作成済みです。
以下のコマンドでダミーデータを挿入します。
php artisan migrate:refresh --seed
Postman で GET リクエストを送信
私の Laravel API は、/api/articlesに対して GET リクエストを送信すると、掲示板サイトの投稿記事一覧を取得する仕様になっています。
正しくレスポンスが返ってくるか、Postman で確認してみます。

成功です!!
本記事はここまでです。
次の記事はこちら↓
初めての AWS で Laravel API をデプロイしてみた! - 第 6 弾:Webレイヤ冗長化編

