Windows環境にPHPとLaravelをセットアップし、Dockerで環境構築する手順
この投稿は、WindowsにPHPをインストールし、Laravelアプリを作成、そしてDockerを使ってLaravelアプリを動かす手順の記録用です。
1. PHPのインストール手順
1-1. PHPのダウンロードと解凍
- PHP公式サイトから最新のPHPをダウンロードします。
- ダウンロードしたZIPファイルを任意のフォルダに解凍します。例えば、
C:\php
フォルダを作成して、その中に解凍します。
1-2. PHPのパスを環境変数に設定
- スタートメニューの検索バーに「環境変数」と入力し、「システム環境変数の編集」をクリック。
- 「システムのプロパティ」ウィンドウが開いたら、「環境変数」ボタンをクリック。
- 「システム環境変数」の「Path」を選択し、「編集」をクリック。
- PHPの解凍先フォルダ(例:
C:\php
)のパスを追加。 - 「OK」をクリックして設定を完了します。
1-3. PHPの動作確認
PowerShellまたはコマンドプロンプトを開き、以下のコマンドを実行してPHPがインストールされたか確認します。
php -v
PHPのバージョンが表示されればインストールは成功です。
2. Composerのインストール
2-1. Composerのインストール手順
- Composer公式サイトからWindows用インストーラーをダウンロード。
- ダウンロードした
Composer-Setup.exe
を実行し、インストールウィザードに従ってComposerをインストール。 - インストール中に「PHPのパス」を指定するように求められたら、先ほどインストールしたPHPのパス(例:
C:\php\php.exe
)を指定します。
2-2. Composerの動作確認
PowerShellを再起動し、以下のコマンドを実行してComposerが正しくインストールされたか確認します。
composer --version
Composerのバージョンが表示されれば成功です。
3. Laravelアプリの作成
3-1. Laravelプロジェクトを作成する
まず、PowerShellで作成したいディレクトリに移動します。例えば、C:\projects
フォルダに移動するには以下のコマンドを使います。
cd C:\projects
次に、以下のコマンドを実行してLaravelのプロジェクトを作成します。
composer create-project --prefer-dist laravel/laravel my-laravel-app
これで、my-laravel-app
という名前のフォルダにLaravelのファイル一式が作成されます。
4. Docker環境の設定
LaravelアプリをDocker上で動かすため、PHP-FPM、Xdebug、MySQL、Nginxを使用します。
4-1. Dockerfileを作成
Dockerfile
を作成し、以下の内容を記述します。
# ベースイメージ
FROM php:8.2-fpm
# 必要なPHP拡張機能をインストール
RUN apt-get update && apt-get install -y \
git \
unzip \
libzip-dev \
&& docker-php-ext-install zip pdo pdo_mysql
# Composerをインストール
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Xdebugをインストール
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
# 作業ディレクトリを設定
WORKDIR /var/www
# Laravelのコードをコピー
COPY . /var/www
# 権限設定
RUN chown -R www-data:www-data /var/www
# ポートを公開
EXPOSE 9000
4-2. Docker Composeファイルを作成
次に、docker-compose.yml
を作成し、以下の設定を書き込みます。
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_app
volumes:
- .:/var/www
ports:
- "9000:9000"
networks:
- laravel
nginx:
image: nginx:latest
container_name: nginx
ports:
- "8080:80"
volumes:
- .:/var/www
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
networks:
- laravel
db:
image: mysql:8
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- "3306:3306"
networks:
- laravel
networks:
laravel:
driver: bridge
4-3. Nginxの設定
nginx/default.conf
というファイルを作成し、Nginxの設定を記述します。
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4-4. index.htmlの修正
表示したい文字(Hello World)を記述します。
<!DOCTYPE html>
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>
5. DockerでLaravelアプリを立ち上げる
すべての設定が完了したら、以下のコマンドを実行してDockerを立ち上げます。
docker-compose up --build
http://localhost:8080
にアクセスするとLaravelアプリが表示されるはずです。
まとめ
- PHPのインストール:PHPの環境変数を設定し、動作確認。
- Composerのインストール:Composerをインストールし、動作確認。
-
Laravelアプリの作成:
composer create-project
で新規プロジェクトを作成。 -
Docker環境の設定:
Dockerfile
とdocker-compose.yml
を設定。 -
アプリの起動:
docker-compose up
でDockerを立ち上げ、Laravelを実行。
これでLaravelアプリがDocker上で動作します!