PHP の開発環境を毎回ローカルにインストールして設定して…という作業、そろそろやめたくありませんか?
この記事では、Docker を使って「PHP 8.3 + MySQL + phpMyAdmin」環境をまとめて構築する手順を、初心者でも迷わないように一つずつ丁寧に解説していきます。
Docker Compose の設定ファイルを用意して、docker compose up するだけで、
ブラウザから PHP と phpMyAdmin にアクセスできる、便利な開発環境が完成します。
これから一緒に、再現性が高くて壊してもすぐ作り直せる、快適な PHP 開発環境を作っていきましょう。
Dockerを環境にインストール
まずは Docker を使えるように、Docker Desktop for Mac をインストールします。Mac なら GUI で簡単にセットアップできるので、ここはサクッと進めてしまいましょう。
▶︎ Step 1:Docker Desktop をダウンロードする
- 公式サイトへアクセス https://www.docker.com/products/docker-desktop/
- 「Download Docker Desktop」 ボタンにマウスをホバーし、環境にあったインストラーをクリック。

▶︎ Step 2:アプリケーションをインストール
- ダウンロードした Docker.dmg を開きます。
- 表示されたウインドウで Docker アイコンを Applications フォルダにドラッグ&ドロップ。
- インストールが完了したら、Applications フォルダから Docker.app を起動します。
- 初回は以下のような画面がでるが開くをクリック

- Acceptをクリック

- recommendedでFinish
- パスワードを要求されるのでPCのパスワードをいれる
- その後にいくつかダイアログがでるがyesで進めばOK

- この画面が出たら右上のSkipでOK
初回起動時に Docker アカウントでのサインイン画面が表示されますが、
今回はローカル開発で使うだけなので 「Skip」ボタンをクリックしてスキップ してかまいません。

- アンケートがでるがこれもskip


- Docker Desktop のインストールが完了すると、上のような管理画面(Dashboard)が表示されます。
ここから現在動いているコンテナの一覧を確認したり、イメージ・ボリュームの管理を行うことができます。
まだ何も起動していないため空の状態ですが、これで Docker が正しく動作していることが確認できました。
▶︎ Step 3:プロジェクトフォルダの作成
まずは今回の Docker 環境を置くためのフォルダを作ります。ここでは例として、ホームディレクトリ直下にdockerフォルダを作成しそこに
php83-mysql-phpmyadmin
を作成します。(お好きな場所で大丈夫です)
mkdir -p ~/docker/php83-mysql-phpmyadmin
cd ~/docker/php83-mysql-phpmyadmin
▶︎ Step 4:docker-compose.yml を作成する
お好きなエディターでdocker-compose.ymlを作成します。
- vscodeの場合
cd ~/docker/php83-mysql-phpmyadmin
code docker-compose.yml- vimの場合
cd ~/docker/php83-mysql-phpmyadmin
vi docker-compose.yml- 以下の内容を入力します
- 8080:80はホスト側ポート : コンテナ側ポート
- ホストポート番号は慣例にしたがって8080を使うように書いてありますがポートの競合を防ぐために18080などにするのもいいでしょう。
services:
app:
image: php:8.3-apache
container_name: php83-app
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
depends_on:
- db
db:
image: mysql:8.0
container_name: mysql-db
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: app_db
MYSQL_USER: app_user
MYSQL_PASSWORD: app_password
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin
depends_on:
- db
environment:
PMA_HOST: db
PMA_USER: root
PMA_PASSWORD: rootpassword
ports:
- "8081:80"
volumes:
db_data:ざっくり説明
- app
- php:8.3-apache イメージを使用
- ホストの ./src をコンテナ内の /var/www/html にマウント
- http://localhost:8080 で Apache(php) にアクセス
- db
- mysql:8.0 を使用
- 初期 DB 名やユーザー、パスワードを環境変数で指定
- データは db_data という名前付きボリュームに永続化
- phpmyadmin
- ブラウザから MySQL を操作するための GUI
- http://localhost:8081 でアクセス
- db サービス(MySQL)を PMA_HOST で指定
▶︎ Step 5:srcフォルダを作成して、テスト用index.phpを用意
Apache(PHP) コンテナは ./src を /var/www/html にマウントしているので、
ここに PHP ファイルを置くとブラウザで表示できる しくみ。
まずは動作確認用の簡単な PHP を置こう。
- srcフォルダを作成
- ターミナルでプロジェクトディレクトリにいる状態で:
mkdir src
cd src- index.phpを作成
- 以下はvscodeの場合
code index.php- 内容は以下
<?php
phpinfo();▶︎ Step 6:Dockerコンテナ起動
いよいよDockerコンテナを起動します。
docker compose up -d- m2 mac環境で行ったところ最後に気になるメッセージが出ていますが、基本動くので問題ありません。

起動確認
docker compose ps- 以下のように起動が確認できれば成功だ!

ブラウザで確認
- ブラウザから以下のアドレスを入力
- ポート番号を変更した人はそのポート番号をいれること
http://localhost:8080/- 以下のように表示されれば成功だ

- phpmyadminは以下のアドレス
http://localhost:8081
コンテナ停止
- 最後にコンテナを停止しよう
docker compose downDocker環境構築完了!
今回はDocker を使ってPHP 開発環境を構築しましたが、Python + Django や Node.js、Laravel など、あらゆる開発で活用できます。
“環境構築が最速で終わる” というのは、現代開発の大きなアドバンテージです。
ぜひともライフワークにDocker加えておきましょう!

コメント