• aboutabout
  • servicesservices
  • worksworks
  • mediamedia
  • contactcontact
  • homeサイトトップ
  • about会社概要
  • services業務内容
  • works実績紹介
  • mediaメディア
  • contactお問い合わせ
ja/

media

メディア

  1. サイトトップ
  2. メディア
  3. Web開発の記事
  4. Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#2:Laravelのインストール

Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#2:Laravelのインストール

  • 2022.11.04
  • Web開発
  • ウェブアプリケーション
Updated: 2022.11.04
前回記事「Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#1:Docker環境構築」では、Dcokerを使ってローカルに開発環境を構築するところまでを進めていきました。今回は構築した環境にLaravelをインストールしてアプリケーションのデモ画面が表示されるところまでをまとめてみたいと思います。LaravelはPHPで作成されたウェブアプリケーションのフレームワークで、サーバー内で動作するものになります。ここではDockerのコンテナ内にインストールしていく形になります。前回記事で構築した環境を前提に進めていきます。 (これまでの記事はこちら) Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#1:Docker環境構築    
1. Laravel本体のインストール
まずはLaravel本体をインストールしていきます。Dockerのコンテナ内にインストールするため、Dockerのコンテナを起動しておく必要があります。そして下記のコマンドでインストールを実行します。下記では、ドキュメントルート直下にLaravelというディレクトリを作成し、その中にアプリケーションフォルダ一式をインストールしますが、その辺りはプロジェクトに合わせて適宜調整してもらえればと思います。
$ docker-compose exec app composer create-project --prefer-dist laravel/laravel laravel
  Dockerの設定で、ウェブサーバーのドキュメントルートは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環境構築
XでシェアLINEで送るはてブに追加

この記事を書いた人オガワ シンヤ

合同会社デザインサプライ代表兼CEO / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はダイエットコーラとチョコレートが欠かせないアラフォーWebクリエイター。

Sponsored Link

  • Showcase
  • Startify UI
  • Functional Gradation Generator
  • Coloooors

keyword search

categories

  • サーバー構築(31)
  • ウェブアプリケーション(12)
  • 開発環境構築(11)
  • Jamstack(6)
  • セキュリティ(4)
  • 制作・開発進行管理(2)
  • モバイルアプリ開発(2)
  • システム・コーディング設計(2)
  • PWA(1)
  • ウェブサイト保守(1)

recent articles

  • Shopifyでのテーマ開発に便利なローカル環境を構築する#2:Shopify CLI
    read more

    Shopifyでのテーマ開発に便利なローカル環境を構築する#2:Shopify CLI

    2023.05.07/開発環境構築
  • Shopifyでのテーマ開発に便利なローカル環境を構築する#1:Shopify Theme Kit
    read more

    Shopifyでのテーマ開発に便利なローカル環境を構築する#1:Shopify Theme Kit

    2023.04.29/開発環境構築
  • Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#7:動的ルーティングとデータベース更新処理
    read more

    Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#7:動的ルーティングとデータベース更新処理

    2023.03.23/ウェブアプリケーション
  • Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#6:ミドルウェアの設定と認証ページ作成
    read more

    Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#6:ミドルウェアの設定と認証ページ作成

    2023.02.10/ウェブアプリケーション
  • Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#5:ログイン認証機能の実装
    read more

    Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#5:ログイン認証機能の実装

    2023.01.20/ウェブアプリケーション
  • Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#4:ログイン認証ユーザー作成
    read more

    Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#4:ログイン認証ユーザー作成

    2023.01.13/ウェブアプリケーション
  • 次の記事
  • 一覧に戻る
  • 前の記事

まだ依頼内容が決まっていなくても、ご相談ください。

課題の整理や小さな検証、UI/UX・フロントエンドの部分的な支援から始められます。

お問い合わせやご相談はこちらから

Webサイト・プロダクトの企画設計/UI・UXデザイン/フロントエンド開発合同会社デザインサプライ(DesignSupply. LLC)

Office:大阪府大阪市天王寺区清水谷町3-22
Email:info@designsupply-web.com
home
  • サイトトップ
about
  • 3つのポリシー
  • 経営理念
  • 代表・クリエイター紹介
  • 会社概要
services
  • ビジネス・プロダクト支援
  • UI/UX・フロントエンド開発支援
  • プロジェクトの進め方・支援体制
  • エデュケーション事業
works
  • 開発プロジェクト支援
  • クリエイティブ制作
  • 自社プロダクト
media
  • デザイン
  • プログラミング
  • マーケティング
  • Web開発
  • 写真・動画制作
contact
  • お問い合わせ
news
  • インフォメーション
privacy
  • プライバシーポリシー

WE THINK WITH YOU, DESIGN FOR PEOPLE, AND BUILD WHAT WORKS.

WE THINK WITH YOU, DESIGN FOR PEOPLE, AND BUILD WHAT WORKS.

© 2013 - 2026 DesignSupply.LLC
サイトトップへ
contact