PHP

5分でDockerによるmacOS PHP開発環境構築手順

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

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上で動作するため、公式イメージを使用する必要があります。以下にインストール手順を解説します。

ドッカー公式サイトへのアクセス

  1. Docker for Mac公式サイト にアクセス
  2. 「Download Docker Desktop for Mac」ボタンをクリックし、インストーラーをダウンロード

注意: macOSのバージョンに応じて「ARM版」と「Intel版」が存在します。自身のMacの構成と確認してください。Mac Silicon(M1/M2チップ)はDocker Desktop for Mac ARM版を使用してください


インストーラーの実行と起動

  1. ダウンロードした.dmgファイルをマウントし、DockにDocker Desktopアイコンを追加
  2. アプリケーションを開き、「Install」ボタンをクリックしてインストール
  3. インストールが完了したら、Docker Desktopアプリケーションを起動

動作確認のコマンド

ターミナルで以下のコマンドを実行し、Dockerが正しく動作しているか確認します:

出力例:


docker-compose.ymlファイルの作成方法

docker-compose.ymlは、複数のコンテナを一括で管理するための設定ファイルです。以下に具体的な作り方と例を示します。

ファイルの配置場所

プロジェクトディレクトリ内に、docker-compose.ymlという名前のファイルを作成してください。このファイルは、PHP、MySQL、phpMyAdminなどのサービスを定義します。


基本構造とサービス定義

以下がdocker-compose.ymlの基本的な構文です:

ポイント: 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)を追加するには、以下の手順を行います:

  1. プロジェクトディレクトリ内にDockerfileを作成し、以下のように記述します(php:8.2-cli-alpineをベースに):

  1. docker-compose buildコマンドでビルドします。

ホストマシンとの共有フォルダ設定

PHPのソースコードをホストマシンとコンテナ間で共有するには、volumesフィールドを使用します:

この設定により、./srcディレクトリ内の変更が即座にコンテナ内に反映されます。


MySQLとphpMyAdminの連携設定

MySQLとphpMyAdminをDockerで接続するには、ネットワーク構成と環境変数の適切な設定が必要です。

docker-composeでのネットワーク構成

docker-compose.yml内でサービスを同一ネットワークに配置することで、サービス間通信が可能になります:

注意: depends_onフィールドを使うことで、phpMyAdminがMySQLが起動した後にのみ実行されます。


データベース認証情報の環境変数

MySQLとphpMyAdminを連携させるには、以下のような環境変数を設定します:

PMA_HOSTフィールドは、MySQLコンテナのサービス名(mysql)を指定します。


ブラウザからのアクセス方法

phpMyAdminにアクセスするには、ブラウザで以下URLを開きます:

初期ログイン時のユーザー名・パスワードは、MySQLコンテナの環境変数(PMA_USER, PMA_PASSWORD)と同じになります。


起動時のトラブルシューティング

Dockerを使用する際には、以下のようなエラーが発生することがあります。それぞれに対処法を解説します。

よくあるエラーメッセージ一覧

エラーメッセージ 原因 対処法
bind: address already in use ポート衝突(例: 9000ポートが既に使用中) docker-compose downでコンテナを停止し、他のアプリケーションとポータルを確認
Permission denied コンテナ起動時に権限不足 chmod +xで実行ファイルの権限を確認

ポート衝突時の対処法

ポートが既に使用されている場合は、docker-compose.yml内のports設定を変更します。例:

ポイント: docker-compose up -dで起動後、「Port is already in use」の警告が表示された場合は、docker psコマンドで他のコンテナを終了させる必要があります。


権限エラーの解決策

Dockerコンテナ内でファイル操作時に「Permission denied」というエラーが出る場合、以下を行います:

  1. ホストマシンのユーザーにDockerグループに所属させます(sudo usermod -aG docker $USER
  2. プロジェクトディレクトリ内のファイル・フォルダに読み取り/書き込み権限を付与します:


結論

本記事では、PHP開発環境をmacOSで構築する際の手順について、具体的かつ実務的な情報を解説しました。

  • Docker for Macのインストールからdocker-compose.ymlの作成、PHPとMySQLの設定、トラブルシューティングまでを網羅しました。
  • 特にコピペ可能な手順書形式で構築しやすく設計されており、初心者でも即実行可能です。

以下のキーポイントをまとめます:

  1. 最新バージョン(PHP 8.2)の公式イメージを使用する
  2. docker-compose.ymlでサービスを明確に定義し、ネットワーク構成と環境変数を設定
  3. 障害が発生した場合は、エラーメッセージから原因を特定し、適切な対処法を行う

この記事の内容を参考に、あなたの開発環境も5分で完成させましょう。


スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-PHP