LoginSignup
8
12

More than 5 years have passed since last update.

Dockerを利用してPHP5.3 / Apache2 のローカル環境を構築する方法

Last updated at Posted at 2017-11-22

はじめに

PHP 7.2がそろそろリリースされようとする昨今ですが、まだPHP5.3を利用しているシステムも少なくないと思います。今回はDockerを利用してPHP5.3/Apacheのローカル環境を構築する方法をまとめます。

なぜ Docker を利用するのか

Docker を利用するメリットは以下です

  • 起動が高速
  • 他開発者と環境と共有・統一できる
  • 調整が簡単

前提

構築手順

方針を簡単にまとめると、Docker で PHP5.3/Apacheのイメージを作成し、それをdocker-composeで起動して利用する方針です。手順は以下にまとめます。

Docker Image を準備

Ubuntu 12.04 は初期状態で PHP 5.3.10 がインストール可能なのでそれを利用します。以下ファイルを用意します。

Dockerfile
FROM ubuntu:12.04
MAINTAINER Your Name <your@email.com>

VOLUME ["/var/www"]

# PHP 5.3 + Apache で必要なパッケージをインストール
RUN apt-get -qq update \
    && apt-get install -y -qq --no-install-recommends \
      apache2 \
      libapache2-mod-php5 \
      php5

COPY run /usr/local/bin/run
RUN chmod +x /usr/local/bin/run

EXPOSE 80
CMD ["/usr/local/bin/run"]
run
#!/bin/bash
set -e

# Apacheの環境変数を読み込み、Apache2をフォアグランドで起動。これによりコンテナ起動時にApacheが常時起動になる
source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND

イメージをビルドします。タグ名は好きな名前をつけてください。

$ docker build ./ -t hypermkt/php53-apache

Docker Hub にイメージを push

docker コマンドを利用して先ほど作成したタグ名を指定して、イメージをpushします。

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: hypermkt
Password:
Login Succeeded

$ docker push hypermkt/php53-apache:latest

成功すると以下のようにリポジトリが作成されます。

image.png

docker-compose で コンテナを起動

docker-compose.yml ファイルを用意します。ポイントとしては

  • Docker Hub に pushしたイメージを利用する
  • 80ポートにアクセスできるようにする
  • ホストの直下とコンテナ側のドキュメントルートをマウント

を設定します。

docker-compose.yml
version: '2'
services:
  web:
    image: hypermkt/php53-apache
    volumes:
      - ./:/var/www
    ports:
      - "80:80"

コンテナを起動します。

$ docker-compose up

動作確認

確認用にホスト側にphpinfoファイルを用意しておきます。

phpinfo.php
<?php
phpinfo();

ブラウザからアクセスすると、phpinfoが確認できました。

image.png

これで PHP 5.3 + Apache2 環境の構築完了です。

おわりに

今回は最低限の環境を構築したのみでした。WebサービスとなるとさらにPHPの拡張モジュールが必要だったり、Apahceで設定変更も必要になると思いますので、必要に応じて拡張していくと良いと思います。

参考

8
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
12