Edited at

DockerでApacheとPHPをとりあえず動かす

ディレクトリ構造

app

├── Dockerfile
└── html
└── index.php


Dockerfile

EXPOSE をしないとYou don't have permission to access / on this server.のエラーによりサイトにアクセスできません。

FROM php:7.2.7-apache

EXPOSE 80


index.php


index.php

<form method="POST" action="index.php">

<label for="name">名前:</label>
<input type="text" name="name" size="15" />
<input type="submit" name="submit" value="送信" />
</form>

<?php
if ($_REQUEST['submit'] !== null) {
print('こんにちは、'. htmlspecialchars($_POST['name'], ENT_QUOTES | ENT_HTML5, 'UTF-8').'さん!');
}
?>



1. ビルド


appディレクトリ上

docker build ./ -t php_apache_image:ver001



2. 実行


appディレクトリ上

docker run -d -p 80:80 -v {htmlディレクトリまでのabsolute path}:/var/www/html --name php_apache_container php_apache_image:ver001



docker run -d -p 80:80 -v /Users/cassin/MyProjects/app/html:/var/www/html --name php_apache_container php_apache_image:ver001


3. サイトにアクセス

http://localhost


参考

Dockerの開発環境構築 (Mac + Docker + PHP + Apache)

山田祥寛 改訂版JavaScript本格入門