👏
PHP のビルトインサーバを Docker で動かして html を php として実行する
はじめに
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