Work
Travel
Various
Apache + PHP サーバーをローカルでエミュレートする
Docker Compose を使えば、ホスト側に何もインストールすることなく、ローカルに Apache + PHP サーバーを起動できます。 これは PHP ページをデプロイする前に開発・テストするのに便利です。
docker-compose.yml
配信したいディレクトリに、このファイルを配置します。
services:
web:
image: php:8.3-apache
ports:
- "8080:80"
volumes:
- .:/var/www/html
ボリュームマウント .:/var/www/html はカレントディレクトリを Apache のドキュメントルートにマッピングするため、
そのディレクトリ内のすべてのファイルが、再ビルドなしで即座に利用可能になります。
サブディレクトリ(例: web_portal/)を配信したい場合は、ボリュームを次のように変更します。
- ./web_portal:/var/www/html
起動と停止
docker-compose.yml のあるディレクトリから実行します。
docker compose up -d
コンテナを停止して削除します。
docker compose down
サーバーへのアクセス
ブラウザを開いて、次の URL にアクセスします。
http://localhost:8080/<filename>.php
たとえば、docker-compose.yml が ./web_portal をマウントしていて、そのディレクトリに type1.php が含まれている場合は次のようになります。
http://localhost:8080/type1.php
便利なコマンド
ページの読み込み中に Apache のエラーログを追跡します。
docker compose logs -f
コンテナ内でシェルを開きます。
docker compose exec web bash