Docker で PHP の開発環境を構築する方法

11 min to read

どうも、こうすけ(@kosuke_upd)です。

今回は、DockerでPHPの開発環境を構築する方法を解説します。

環境

  • macOS High Sierra (10.13.6)
  • Docker for Mac

DockerによるPHPの開発環境構築方法でお困りの場合はぜひ参考にしてみてください。

手順1. Docker for Mac のインストール

まずは、お使いのPCに、Docker for Macをダウンロードし、インストールしましょう。

Docker for Mac ダウンロードページ

Docker for Macの具体的なインストール方法をこちらで解説しているので、もしインストール方法がわからない場合はぜひ参考にしてみてください。

DockerをMacにインストールする方法

手順2. Docker イメージのビルド

手順2-1. Dockerfile の作成

DockerイメージをビルドするためにはDockerfileが必要です。

ターミナルを開き、下記のコマンドを実行し、任意のディレクトリ(ここでは「php_apache」)を作成し、そのディレクトリ配下にDockerfileを作成します。

mkdir php_apache
cd php_apache/
touch Dockerfile

手順2-2. Dockerfile の設定

作成したDockerfile内に下記のように記述しましょう。

FROM php:7.2.11-apache

FROMには、ベースとなるイメージとタグを指定します。上記のものは、公式のイメージ「PHP」の、タグ「7.2.11-apache」を指定しています。これは、PHP7.2.11とApacheが一つのコンテナに含まれているイメージです。

公式のDocker Hubでは様々なイメージが公開されており、使用することができます。

Docker Hub

PHPの公式リポジトリはこちらで確認できます。

library/php – Docker Hub

手順2-3. イメージをビルド

Dockerfileの設定が完了したら、ターミナルで下記のコマンドを実行し、指定したイメージをダウンロードしましょう。

docker build ./ -t php_apache_image

上記コマンドは下記のような意味です。※上記のコマンドではタグ名は省略しています。

docker build (Dockerfileのパス) -t (ビルドするイメージにつけるリポジトリ名):(タグ名)

手順2-4. イメージの確認

ターミナルで下記コマンドを実行して、ビルドされたイメージを確認しましょう。

docker images

下記のように表示され、ビルドされたイメージを確認できると思います。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
php                 7.2.11-apache       cf1a377ba77f        9 days ago          377MB
php_apache_image    latest              cf1a377ba77f        9 days ago          377MB

手順3. マウント用ディレクトリの作成

コンテナ側にマウントするためのディレクトリを作成します。

Dockerコンテナ内のファイルは永続化されないため、ホスト側のディレクトリをコンテナ側にマウントすることでデータを永続化します。

ターミナルで下記のコマンドを実行し、Dockerfileと同じディレクトリにマウント用ディレクトリ「html」を作成しましょう。

mkdir html

手順4. コンテナの起動

手順4-1. コンテナの起動

準備ができたので、下記のコマンドを実行してコンテナを起動しましょう。

docker run -d -p 80:80 -v /Users/hoge/php_apache/html:/var/www/html --name php_apache_container php_apache_image

上記コマンドの説明を簡単にすると、下記の通りです。

docker run -d -p (ホスト側のポート):(コンテナ側のポート) -v (ホスト側のパス):(ゲスト側のパス) --name (コンテナにつける名前) (手順2-3でビルドしたイメージのリポジトリ名)

手順4-2. コンテナの起動確認

では、正常にコンテナが起動されているかを確認するために、ターミナルで下記コマンドを実行しましょう。

docker ps -a

すると、下記のように表示され、「STATUS」項目が「Up」となっていればコンテナが起動できている証拠です。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
5b18724f6cb1        php_apache_image    "docker-php-entrypoi…"   16 seconds ago      Up 15 seconds       0.0.0.0:80->80/tcp   php_apache_container

手順5. コンテンツを配置して動作確認

手順5-1. WEBページを作成

では、実際にコンテンツを作成して配置し、動作確認を行いましょう。

これまでの作業を手順通りに進めていれば、現在は「php_apache」ディレクトリにいるはずです。そのため、下記コマンドを実行して先程作成した「html」ディレクトリに移動しましょう。

cd html

「html」ディレクトリに移動したら、下記のコマンドを実行して「index.php」ファイルを作成しましょう。

touch index.php

作成した「index.php」ファイル内に書きを記述して保存しましょう。

<?php
phpinfo();

手順5-2. 作成したWEBページをブラウザで確認

では、作成したWEBページをブラウザで開いて正しく表示されるか確認しましょう。

ブラウザのアドレスバーに「localhost/index.php」または「localhost」と入力し実行してみてください。下記のように表示されたらOKです。

最後に

今回は、Dockerを用いたPHPの開発環境構築方法を解説しました。

Dockerを用いることで、以上のようにとても簡単に開発環境を構築できます。10分もあればできると思うので、ぜひチャレンジしてみてください。

\ 記事が良かったらシェア! /

むらかこうすけ

むらかこうすけ

フリーのソフトウェアエンジニア.

Web アプリ, スマホアプリの開発が得意で, 今はゲームに関するプロダクトを仲間とともに開発しています.

ゲーム, 旅行がめちゃくちゃ好きです.

当ブログは Gatsby を用いて構築した完全自作ブログです.

UPDATE