AWS EC2にLaravel+Laradockをデプロイ(STEP7:Laravel環境設定)

2022/02/27

AWS EC2 に「Laravel + Laradock」をデプロイするシリーズの第7回目(最終)です。

イントロは以下になります。

前回は AWS EC2 にGitクローンでソースをダウンロードし、Dockerを起動しました。

今回はworkspaceコンテナに入り、Laravelの環境設定を行っていきます。

 

手順

 

1.workspaceコンテナに入る

前回、docker-compose up -d apache2 mysqlコマンドを実行してコンテナを立ち上げました。

これに関連してworkspaceコンテナも立ち上がったので、workspaceコンテナに入ります。


root@ip:/home/ubuntu/laravel_app4/laradock# docker-compose exec workspace bash

 

実演

 

2..env(Laravel側)の作成

Laravelプロジェクト内の環境設定を行う.envファイルは.gitignoreにて指定されているため、Gitリポジトリにプッシュされません。

クローンしたファイルの中には無いので再度、ここで作成します。


# 以下workspaceコンテナ内
/var/www# cp .env.example .env

# viで.envファイルを編集
/var/www# vi .env

DB_HOST=mysql
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

 

実演

viの使い方がわからない方は以下をご参考にください。

 

3.composerインストール

vendorディレクトリも.gitignoreにて指定されているため、Gitリポジトリにはありません。

vendorディレクトリを生成するために composer install コマンドを実行します。


/var/www#composer install

# インストール完了後、APP_KEYも発行
/var/www# php artisan key:generate

 

実演

 

4.プロジェクト内の権限変更

このままだと、データベースを動作させるとエラーが起きてしまいます。

プロジェクト内のファイルに対する権限を変更します。

通常では storage/logsvendor の権限を変更すればOKみたいです。

自分の場合はこれだけだと以下のようにエラーが表示されました。

なので、さらに storage/framework/viewsも権限を変更しました。


/var/www# chmod 777 storage/logs vendor
/var/www# chmod 777 storage/framework/views

 

実演

パーミッションの変更は757でもいけるみたいです。

 

5.動作確認

http://[設定したElastic IPアドレス]をブラウザで叩きます。

上記のように表示されればOKです。

なお、EC2インスタンスを再起動すると、Dockerコンテナは止まります。その時はまたDockerを起動することを覚えておいてください。その際に、Docker・Docker Composeコマンドは実行時にroot権限が必要となります。

Dockerを使っているので環境間での差異がありません。便利ですね。

 
以上で「AWS EC2にLaravel+Laradockをデプロイ」の解説を終わります。

ありがとうございました。

 

図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書

自分はネットワークの基礎知識が多少あったので、AWSでのデプロイを舐めてかかったら手酷くやられてしまいました(苦笑)AWSの専門用語が多すぎて、ハンズオン資料の流れが理解できなかったからです。本書では概念図と丁寧な用語解説がされているので、用語の整理にはなります。(※業務的な内容はありません。)ハンズオン資料はネットにあるので、まずはAWSの用語を本書で抑えてからEC2インスタンスの作成を始めると上手くいくと思います。

Amazonで詳細を見る

オススメ

 

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-チュートリアル, 環境構築