サンプル

実際のアプリを、エンドツーエンドで検証済み

OxPHP 上で動く Laravel から WordPress まで。各レシピは自己完結型の Docker Compose プロジェクトです。Dockerfile、compose ファイル、インストールコマンド、そして nginx + PHP-FPM 向けに書かれたドキュメントではカバーされない細部までを含みます。

Laravel

フレームワークモードの代表的なアプリケーション。

PHP
8.5
ルーティングモード
フレームワーク
サービス
MySQL
インストール
composer create-project
environment · docker-compose.yml
ENTRY_FILE=index.php
注記
—

ENTRY_FILE=index.php を指定するとフレームワークモードになります。public/ がドキュメントルートとなるため、.env、app/、vendor/ に HTTP 経由でアクセスされることはありません。

—

コンテナの環境変数が .env より優先されます。Laravel の dotenv ローダーは実際の環境変数を上書きしないため、Compose で設定した DB_HOST や APP_ENV が有効になります。

—

開発用イメージはリクエストごとに OPcache を再検証するため、バインドマウントした src/ への変更は即座に反映されます。

公開イメージの上に構築

どの Dockerfile も oxphp バイナリ、liboxphp_bridge.so、SAPI 拡張を ghcr.io/oxphp/oxphp からコピーします。PHP の ABI は一致している必要があります。アプリの拡張は同じ php:<X.Y>-zts-alpine 上でコンパイルしてください。

ルーティングモードはアプリの形に従う

public/ 配下にフロントコントローラーが 1 つ → フレームワークモード。物理的なエントリポイントが複数 → 従来モード。この 1 つの判断が nginx の rewrite ファイル全体を置き換えます。

設定不要のセキュリティ既定値

ドットパスのブロックにより .env と .git/ はどこでも 404 になります。従来モードでは PHP_DENY_PATHS がアップロードディレクトリを保護し、SYMLINK_ALLOW_PATHS は意図したシンボリックリンクのみを許可します。

インストールも同じコンテナで

開発イメージには PHP CLI と Composer が入っています。artisan、drush、wp、bin/magento はすべて docker compose exec 経由で実行でき、別のツールチェーンは不要です。

お使いのスタックが一覧にありませんか?

フロントコントローラーを持つアプリはどれもフレームワークモードで動作します。Laravel のレシピから始めて、3 つの変数を調整してください。