2022/02/27
AWS EC2 に「Laravel + Laradock」をデプロイするシリーズの第7回目(最終)です。
イントロは以下になります。
AWS EC2にLaravel + Laradockをデプロイ(イントロ)
前回は 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/logs
と vendor
の権限を変更すればOKみたいです。
自分の場合はこれだけだと以下のようにエラーが表示されました。
なので、さらに storage/framework/views
も権限を変更しました。
/var/www# chmod 777 storage/logs vendor
/var/www# chmod 777 storage/framework/views
実演
5.動作確認
http://[設定したElastic IPアドレス]をブラウザで叩きます。
上記のように表示されればOKです。
Dockerを使っているので環境間での差異がありません。便利ですね。
以上で「AWS EC2にLaravel+Laradockをデプロイ」の解説を終わります。
ありがとうございました。
図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書
自分はネットワークの基礎知識が多少あったので、AWSでのデプロイを舐めてかかったら手酷くやられてしまいました(苦笑)AWSの専門用語が多すぎて、ハンズオン資料の流れが理解できなかったからです。本書では概念図と丁寧な用語解説がされているので、用語の整理にはなります。(※業務的な内容はありません。)ハンズオン資料はネットにあるので、まずはAWSの用語を本書で抑えてからEC2インスタンスの作成を始めると上手くいくと思います。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。