👏

PHP のビルトインサーバを Docker で動かして html を php として実行する

2024/01/16に公開

はじめに

PHP のビルトインサーバを動かすために、ローカルに PHP をインストールするのは面倒なので、 Docker で動かす方法の覚書。
そして、html を php として実行したい要望があったので対応。

主に動作確認用。

実行

ドキュメントルートにしたいディレクトリで以下を実行する。 ポート、タグは良しなに設定。

% PORT=8089
% TAG=8.3.1-cli
% docker run --rm \
  -w /workspace \
  -v ./:/workspace \
  -p "${PORT}":"${PORT}" \
  php:"${TAG}" php -S 0.0.0.0:"${PORT}"

html を php として実行する

html を php として実行するルータースクリプトを作成する。

router.php
<?php

$url = $_SERVER['REQUEST_URI'];
if (str_ends_with($url, '.html')) {
    $path = __DIR__ . $url;
    if (is_readable($path)) {
        require_once($path);
        exit;
    }
}

return false;

で、ルータースクリプトを指定して実行する。

% PORT=8089
% TAG=8.3.1-cli
% docker run --rm \
  -w /workspace \
  -v ./:/workspace \
  -p "${PORT}":"${PORT}" \
  php:"${TAG}" php -S 0.0.0.0:"${PORT}" router.php

index.html は省略できないので注意。

参考サイト

環境

% docker --version
Docker version 24.0.6, build ed223bc

Discussion