こんにちは、かつコーチです。
Laravelで開発するとき、様々な動画や書籍がありますが、いろんな方法があって混乱しませんか?
Laravel開発を始める際の環境やワークフローについて、
いくつかの選択肢やツールを整理して解説します。
以下、代表的な開発方法やステップをまとめます。
1. PHPのインストール方法
Laravelを動かすためにはPHPが必要です。PHPは以下の方法でインストールできます。
HomeBrewを使う場合
Mac環境でPHPをインストールする場合、Homebrew
を使うのが簡単です。
brew install php
インストール後、PHPが正しく動作しているかを確認するために以下を実行します。
php -v
MAMPやXAMPPを使う場合
PHP、MySQL、Apacheの開発環境を一括でセットアップするために、
MAMPやXAMPPを使うのも一般的です。
これらのツールは、ローカル開発環境をすぐに立ち上げるのに便利です。
- MAMPやXAMPPをインストールします。
htdocs
フォルダ内にLaravelプロジェクトを配置します。
例えば、以下のように composer create-project
を使ってプロジェクトを作成します。
cd /Applications/MAMP/htdocs
composer create-project laravel/laravel example-app
これで、http://localhost/example-app/public
でアプリケーションを
ブラウザから確認できるようになります。
2. グローバルインストールでLaravelを手軽に扱う
グローバルにLaravelインストーラーをインストールしておけば、
htdocs
や特定のフォルダに依存せず、どこでもプロジェクトを作成できます。
Laravel Installerを使う場合
Laravelをグローバルにインストールすると、
任意のディレクトリから新しいプロジェクトを作成できます。
まず、Laravel Installerをインストールします。
composer global require laravel/installer
この場合、PATH
を設定して laravel
コマンドがどこからでも使えるようにしておく必要があります。bash
か zsh
に ~/.bashrc
や ~/.zshrc
ファイルに以下を追記します。
export PATH="$HOME/.composer/vendor/bin:$PATH"
その後、新しいLaravelプロジェクトを以下のように簡単に作成できます。
laravel new example-app
これで、htdocs
に入れなくてもどこからでもプロジェクトを作成でき、ディレクトリ構造も自由に選択できます。
3. Dockerを使った本番に近い開発環境のセットアップ
ローカル開発環境は簡便ですが、本番環境に近いセットアップをしたい場合は
Docker
を利用すると効率的です。
Dockerはコンテナベースの仮想環境で、プロジェクトを実行するための必要な環境を構築します。
Laravel Sailを使う場合
Laravelには公式のDockerベースの環境である Sail があります。
これを使えば、Docker
を使った開発環境を簡単にセットアップできます。
- まずはプロジェクトを作成します。
composer create-project laravel/laravel example-app
cd example-app
- Laravel Sailをインストールします。
composer require laravel/sail --dev
- Sailのコマンドを使って環境を立ち上げます。以下のコマンドで環境が自動的に構築されます。
./vendor/bin/sail up
Sailは、PHP、MySQL、Redis、Mailhogなど、開発に必要な全てのサービスをコンテナ内で管理し、
プロジェクトと一緒に動かすことができます。
Docker Composeでカスタマイズ
より複雑な環境設定や、特定の要件に合わせたカスタマイズをしたい場合は、
docker-compose.yml
ファイルを手動で設定します。
例えば、以下のような docker-compose.yml
を作成して環境を定義します。
version: '3'
services:
app:
image: php:8.1-fpm
volumes:
- .:/var/www/html
networks:
- laravel
web:
image: nginx:alpine
volumes:
- .:/var/www/html
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- "8000:80"
networks:
- laravel
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: example_db
MYSQL_ROOT_PASSWORD: secret
volumes:
- dbdata:/var/lib/mysql
networks:
- laravel
networks:
laravel:
volumes:
dbdata:
このようにして、プロジェクトの環境をDocker上で一括して管理できます。
プロジェクトに複数のサービスが必要な場合(例えば、Nginx、PHP-FPM、MySQLなど)、
Dockerは非常に便利です。
まとめ
以下の3つの方法を整理すると、次のようになります。
- MAMP/XAMPPでの開発:
- シンプルなローカル開発環境。
htdocs
にプロジェクトを作成し、すぐに開発開始可能。- 小規模な開発や手軽なプロジェクトに最適。
- グローバルインストール:
- Laravel Installerを使えば、どこからでもプロジェクトを作成可能。
- プロジェクトごとにディレクトリを自由に管理可能。
- DockerやSailでの開発:
- 本番環境に近い開発環境を構築可能。
- Sailを使えば、Dockerを使った環境設定も手軽。
- カスタマイズしたい場合は、
docker-compose.yml
を用いて詳細な環境設定が可能。
このように、開発規模や目的に応じて最適な方法を選べます。