Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#2:Laravelのインストール
最終更新日: Update!!
前回記事「Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#1:Docker環境構築」では、Dcokerを使ってローカルに開発環境を構築するところまでを進めていきました。今回は構築した環境にLaravelをインストールしてアプリケーションのデモ画面が表示されるところまでをまとめてみたいと思います。LaravelはPHPで作成されたウェブアプリケーションのフレームワークで、サーバー内で動作するものになります。ここではDockerのコンテナ内にインストールしていく形になります。前回記事で構築した環境を前提に進めていきます。
(これまでの記事はこちら)
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#1:Docker環境構築
これでDockerのローカル環境でLaravelが使えるようになりました。開発環境の構築としてはここまでですが、この後は実際にアプリケーションの開発を進めていく形になります。その辺りはまた次回記事でまとめていきたいと思います。 (こちらの記事も合わせてどうぞ) Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#1:Docker環境構築
1. Laravel本体のインストール
まずはLaravel本体をインストールしていきます。Dockerのコンテナ内にインストールするため、Dockerのコンテナを起動しておく必要があります。そして下記のコマンドでインストールを実行します。下記では、ドキュメントルート直下にLaravelというディレクトリを作成し、その中にアプリケーションフォルダ一式をインストールしますが、その辺りはプロジェクトに合わせて適宜調整してもらえればと思います。$ docker-compose exec app composer create-project --prefer-dist laravel/laravel laravelDockerの設定で、ウェブサーバーのドキュメントルートはDcokerのコンテナ内とローカル側で同期させるようにしていますので、backend/laravelディレクトリ配下にもアプリケーション一式が含まれているのが確認できます。インストール時にメモリエラーが発生することもありますが、その場合にはDocker側のPHP設定ファイルのserver/docker/php/php.iniにて、メモリ上限を調整しておくといいですね。 インストールが完了すると、Laravelのディレクトリに対してパーミッションの変更をしておきます。
$ docker-compose exec app chmod -R 777 laravel/storage laravel/bootstrap/cache最後に、Laravelのプロジェクトで使うアプリケーションの環境変数設定ファイルを下記のようにサンプルを複製して作成しておきます。
$ docker-compose exec app cp laravel/.env.example laravel/.env
2. Laravel内の.envファイルの修正
「.env」ファイルは開発環境や本番環境など環境によってアプリケーションで扱う値を切り替えることができます。今回はローカル環境用に設定をしていきます。といっても、データベース部分だけでOKですので、Dockerで使っているデータベースの情報に合わせて編集していきます。 【backend/laravel/.env】※一部抜粋....... DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=laravel_local DB_USERNAME=admin DB_PASSWORD=secret .......今後、開発環境を共有する場合には「.env.example」も合わせて変更しておくと都度編集する手間が省けますので済ませておきたいですね。
3. アプリケーションのセットアップ
初回起動時にはいくつか作業が必要になります。まずはアプリケーションのキーを発行していきます。専用のコマンドが用意されていますので、Docker側から実行していきます。そして、ファイルストレージのシンボリックリンクも作成しておきます。$ docker-compose exec app php laravel/artisan key:generate $ docker-compose exec app php laravel/artisan storage:linkウェブアプリケーションではデータベースを使われることも多いので、マイグレーションも問題なく実行できる必要があります。下記のコマンドでマイグレーションとシーダーを実行します。シーダーはテストデータをデータベースに入れる処理になりますので、すでにデータが入っている場合には注意が必要です。
$ docker-compose exec app php laravel/artisan migrate:fresh --seedここまで出来れば実際にローカルサーバーにアクセスして、アプリケーションのトップページが表示されるかチェックします。 http://localhost:8000/laravel/public/ 今回はドキュメントルート直下にアプリケーション用のディレクトリを作成する形になっていますので、現状ではアプリケーションのルートが上記のようになっていますが、これを変更していく必要がありますので、次のところで詳しくみていきます。
4. アプリケーションのルートディレクトリ変更
まずは、「backend/laravel/public」ディレクトリを「backend/public」にそのまま移動して置き換えます。そして、publicディレクトリ配下にあるindex.phpに含まれる下記の部分のパスを変更します。 【backend/public/index.php】※一部抜粋// 変更前 if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) { require $maintenance; } ↓ // 変更後 if (file_exists($maintenance = __DIR__.'/../laravel/storage/framework/maintenance.php')) { require $maintenance; } ..... // 変更前 require __DIR__.'/../vendor/autoload.php'; ↓ // 変更後 require __DIR__.'/../laravel/vendor/autoload.php'; ..... // 変更前 $app = require_once __DIR__.'/../bootstrap/app.php'; ↓ // 変更後 $app = require_once __DIR__.'/../laravel/bootstrap/app.php';続いてbackendディレクトリ直下にindex.phpを作成し、下記のコードを入れてpublicディレクトリ直下のindex.phpを読み込むようにします。 【backend/index.php】
<?php require_once(__DIR__.'/public/index.php');最後に、変更後のURLでアプリケーションのトップページにアクセスして問題なく表示されるかチェックします。 http://localhost:8000/ これでDockerのローカル環境へLaravelのインストールが完了し、開発を進める準備ができました。これまでの流れではコマンドを適宜実行していましたが、次はこの辺りをもう少し簡潔にしていきたい思います。
5. Makefileの作成
Dockerのコンテナ起動やマイグレーションなど、開発でよく使うコマンドには長いものがあるので、それらを「Makefile」で登録することで、「makeコマンド」で実行することができます。下記のようにわかりやすい名前でキーを用意してコマンドを紐づけておきます。 【server/Makefile】create: docker-compose build --no-cache --force-rm docker-compose up -d docker-compose exec app composer create-project --prefer-dist laravel/laravel laravel docker-compose exec app chmod -R 777 laravel/storage laravel/bootstrap/cache docker-compose exec app cp laravel/.env.example laravel/.env setup: docker-compose exec app php laravel/artisan key:generate docker-compose exec app php laravel/artisan storage:link build: docker-compose down docker-compose build --no-cache --force-rm docker-compose up -d up: docker-compose up -d stop: docker-compose stop down: docker-compose down destroy: docker-compose down --rmi all --volumes --remove-orphans install: docker-compose exec app composer install update: docker-compose exec app composer update migrate: docker-compose exec app php laravel/artisan migrate fresh: docker-compose exec app php laravel/artisan migrate:fresh --seed seed: docker-compose exec app php laravel/artisan db:seed optimize: docker-compose exec app php laravel/artisan optimize docker-compose exec app php laravel/artisan route:cache tinker: docker-compose exec app php laravel/artisan tinker db: docker-compose exec db bash -c 'mysql -u admin -psecret'Makefileで登録したコマンドは、下記のようにmakeコマンドとして実行することができます。上記は一例ですので、他にもよく使うコマンドがあれば適宜登録しておくと便利ですね。
$ cd server $ make up
これでDockerのローカル環境でLaravelが使えるようになりました。開発環境の構築としてはここまでですが、この後は実際にアプリケーションの開発を進めていく形になります。その辺りはまた次回記事でまとめていきたいと思います。 (こちらの記事も合わせてどうぞ) Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#1:Docker環境構築
sponserd
keyword search
recent posts
- Shopifyでのテーマ開発に便利なローカル環境を構築する#2:Shopify CLI
Shopifyでのテーマ開発に便利なローカル環境を構築する#2:Shopify CLI
- Shopifyでのテーマ開発に便利なローカル環境を構築する#1:Shopify Theme Kit
Shopifyでのテーマ開発に便利なローカル環境を構築する#1:Shopify Theme Kit
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#7:動的ルーティングとデータベース更新処理
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#7:動的ルーティングとデータベース更新処理
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#6:ミドルウェアの設定と認証ページ作成
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#6:ミドルウェアの設定と認証ページ作成
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#5:ログイン認証機能の実装
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#5:ログイン認証機能の実装
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#4:ログイン認証ユーザー作成
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#4:ログイン認証ユーザー作成
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#3:静的ページの作成とルーティング
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#3:静的ページの作成とルーティング
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#2:Laravelのインストール
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#2:Laravelのインストール
categories