Study & Practice

北海道札幌市のプログラマによる技術とか雑記のブログ

Dockerでapacheサーバーを立ててphpでHello worldするまで

Django+PostgreSQLの環境を作る予定だったけど先日、3年くらい前から憧れていた札幌の企業に
エントリーしたらPHPでの実技試験があるとのことだったので、予習をすることに

今回はその第一弾としてphpの開発環境(DBなし)までやっていこうと思う。

まずはindex.phpの用意
ファイルはカレントディレクトリに作る

<?php
<!-- index.php -->
<?php
echo 'Hello world!!';

Hello Worldするだけなのでとても簡単

次はDockerfileの作成

作らなくてもできるけどindex.phpを毎度コピーするのは面倒なので作る
なんとDockerには最初からphpapacheがセットになった公式イメージがあるので
今回も目的はとても簡単に達成できる
hub.docker.com

# Dockerfile
FROM php:7.2-apache
LABEL maintainer="carametal"
COPY ./ /var/www/html/

今回はmaintainerを設定してみた
maintainerはだれが管理しているimageなのかを示すラベルで
個人開発だし世の中に出すわけじゃないけどお試し

COPY命令でカレントディレクトリをコンテナの/var/www/htmlにコピーすることで
カレントディレクトリのindex.phpとDockerfileが/var/www/html配下にコピーされる

apacheは「IPアドレス/」へのアクセスに対して/var/www/html/index.phpをデフォルトで実行するので
これでOK

あとはビルドして実行する

docker build -t php7.2-apache .
docker container run --rm -d -p 8000:80 --name php-test php7.2-apache

これでhttp://localhost:8000/にアクセスするとHello world!!と表示される

次回はMySQLを入れて簡単なDBアクセスを実行するところまでやっ見る予定