Contents
5分で完了!DockerによるPHP開発環境構築の手順
macOSで効率的なPHP開発環境を構築するには、Dockerとdocker-composeが最適な選択です。本記事では、コピペ可能な手順書形式で、最新バージョン(PHP 8.2)を活用した環境構築方法をご案内します。特に初心者~中級者のmacOSユーザー向けに、必要な準備からトラブルシューティングまで網羅して解説しています。
目的と対象者
本記事の目的は、わずか5分でDockerによるPHP開発環境を構築することです。対象者は、macOSユーザーでありながら「ローカル環境にPHPやMySQLを直接インストールするのが面倒」「バージョン管理が難しい」と感じているPHP開発者(初心者~中級者)です。
Dockerを使うことで、以下のような利点を得られます:
- 再現性のある環境の構築が可能
- 隔離されたコンテナで依存関係を管理できる
- 最新バージョン(PHP 8.2)を簡単に導入可能
Docker for Macのインストール手順
DockerはmacOS上で動作するため、公式イメージを使用する必要があります。以下にインストール手順を解説します。
ドッカー公式サイトへのアクセス
- Docker for Mac公式サイト にアクセス
- 「Download Docker Desktop for Mac」ボタンをクリックし、インストーラーをダウンロード
注意: macOSのバージョンに応じて「ARM版」と「Intel版」が存在します。自身のMacの構成と確認してください。Mac Silicon(M1/M2チップ)はDocker Desktop for Mac ARM版を使用してください。
インストーラーの実行と起動
- ダウンロードした
.dmgファイルをマウントし、DockにDocker Desktopアイコンを追加 - アプリケーションを開き、「Install」ボタンをクリックしてインストール
- インストールが完了したら、Docker Desktopアプリケーションを起動
動作確認のコマンド
ターミナルで以下のコマンドを実行し、Dockerが正しく動作しているか確認します:
|
1 2 |
docker --version |
出力例:
|
1 2 |
Docker version 26.1.3, build unknown |
docker-compose.ymlファイルの作成方法
docker-compose.ymlは、複数のコンテナを一括で管理するための設定ファイルです。以下に具体的な作り方と例を示します。
ファイルの配置場所
プロジェクトディレクトリ内に、docker-compose.ymlという名前のファイルを作成してください。このファイルは、PHP、MySQL、phpMyAdminなどのサービスを定義します。
基本構造とサービス定義
以下がdocker-compose.ymlの基本的な構文です:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
version: '3.8' services: php: image: php:8.2-cli-alpine volumes: - ./src:/var/www/html ports: - "9000:9000" environment: PHP_IDE_CONFIG: "serverName=myapp" mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: mydb MYSQL_USER: user MYSQL_PASSWORD: password volumes: - db_data:/var/lib/mysql ports: - "3306:3306" phpmyadmin: image: phpmyadmin/phpmyadmin environment: PMA_HOST: mysql PMA_USER: user PMA_PASSWORD: password ports: - "8080:80" depends_on: - mysql volumes: db_data: |
ポイント:
versionフィールドは、Docker Composeのバージョンを指定します。最新バージョン('3.8')を使用することで互換性を確保できます。
バージョン指定の重要性
サービス定義時にPHPやMySQLのバージョンを明示的に指定する必要があります。以下が主なバージョン推奨例です:
| サービス | 推奨バージョン | 補足 |
|---|---|---|
| PHP | 8.2 | PHP 8.3は公式リリースされていないため、現時点では使用不可(2024年1月時点) |
| MySQL | 8.0 | 個人開発向けに最適化されたバージョン |
PHP8.2環境の構築と設定
PHP 8.2以降では、アルパインLinuxベースイメージが軽量かつ安定しており、個人開発向けに推奨されます。以下に具体的な手順を解説します。
公式イメージの選択理由
Docker Hubからphp:8.2-cli-alpineなどの公式イメージを使用することで、以下の利点があります:
- セキュリティパッチが迅速に適用される
- 公式サポートがあるため長期的な運用が可能
拡張機能の追加方法
PHPに必要な拡張機能(例: pdo_mysql, opcache)を追加するには、以下の手順を行います:
- プロジェクトディレクトリ内に
Dockerfileを作成し、以下のように記述します(php:8.2-cli-alpineをベースに):
|
1 2 3 4 |
FROM php:8.2-cli-alpine RUN docker-php-ext-install pdo_mysql opcache |
docker-compose buildコマンドでビルドします。
ホストマシンとの共有フォルダ設定
PHPのソースコードをホストマシンとコンテナ間で共有するには、volumesフィールドを使用します:
|
1 2 3 |
volumes: - ./src:/var/www/html |
この設定により、./srcディレクトリ内の変更が即座にコンテナ内に反映されます。
MySQLとphpMyAdminの連携設定
MySQLとphpMyAdminをDockerで接続するには、ネットワーク構成と環境変数の適切な設定が必要です。
docker-composeでのネットワーク構成
docker-compose.yml内でサービスを同一ネットワークに配置することで、サービス間通信が可能になります:
|
1 2 3 4 5 |
networks: default: external: name: my-network |
注意:
depends_onフィールドを使うことで、phpMyAdminがMySQLが起動した後にのみ実行されます。
データベース認証情報の環境変数
MySQLとphpMyAdminを連携させるには、以下のような環境変数を設定します:
|
1 2 3 4 5 |
environment: PMA_HOST: mysql PMA_USER: user PMA_PASSWORD: password |
PMA_HOSTフィールドは、MySQLコンテナのサービス名(mysql)を指定します。
ブラウザからのアクセス方法
phpMyAdminにアクセスするには、ブラウザで以下URLを開きます:
|
1 2 |
http://localhost:8080 |
初期ログイン時のユーザー名・パスワードは、MySQLコンテナの環境変数(PMA_USER, PMA_PASSWORD)と同じになります。
起動時のトラブルシューティング
Dockerを使用する際には、以下のようなエラーが発生することがあります。それぞれに対処法を解説します。
よくあるエラーメッセージ一覧
| エラーメッセージ | 原因 | 対処法 |
|---|---|---|
bind: address already in use |
ポート衝突(例: 9000ポートが既に使用中) | docker-compose downでコンテナを停止し、他のアプリケーションとポータルを確認 |
Permission denied |
コンテナ起動時に権限不足 | chmod +xで実行ファイルの権限を確認 |
ポート衝突時の対処法
ポートが既に使用されている場合は、docker-compose.yml内のports設定を変更します。例:
|
1 2 3 |
ports: - "9001:9000" |
ポイント:
docker-compose up -dで起動後、「Port is already in use」の警告が表示された場合は、docker psコマンドで他のコンテナを終了させる必要があります。
権限エラーの解決策
Dockerコンテナ内でファイル操作時に「Permission denied」というエラーが出る場合、以下を行います:
- ホストマシンのユーザーにDockerグループに所属させます(
sudo usermod -aG docker $USER) - プロジェクトディレクトリ内のファイル・フォルダに読み取り/書き込み権限を付与します:
|
1 2 |
chmod -R 755 ./src |
結論
本記事では、PHP開発環境をmacOSで構築する際の手順について、具体的かつ実務的な情報を解説しました。
- Docker for Macのインストールから
docker-compose.ymlの作成、PHPとMySQLの設定、トラブルシューティングまでを網羅しました。 - 特にコピペ可能な手順書形式で構築しやすく設計されており、初心者でも即実行可能です。
以下のキーポイントをまとめます:
- 最新バージョン(PHP 8.2)の公式イメージを使用する
docker-compose.ymlでサービスを明確に定義し、ネットワーク構成と環境変数を設定- 障害が発生した場合は、エラーメッセージから原因を特定し、適切な対処法を行う
この記事の内容を参考に、あなたの開発環境も5分で完成させましょう。