ПРИМЕРЫ

Реальные приложения, проверенные от начала до конца

От Laravel до WordPress на OxPHP — каждый рецепт представляет собой самодостаточный проект Docker Compose: Dockerfile, compose-файл, команды установки и те детали, которые не описаны в документации, написанной для nginx + PHP-FPM.

Laravel

Каноническое приложение в режиме фреймворка.

PHP
8.5
Режим маршрутизации
Фреймворк
Сервисы
MySQL
Установка
composer create-project
environment · docker-compose.yml
ENTRY_FILE=index.php
INTERNAL_ADDR=0.0.0.0:9090
ACCESS_LOG=all
Примечания

ENTRY_FILE=index.php выбирает режим фреймворка: public/ становится корневым каталогом документов, поэтому .env, app/ и vendor/ недоступны по HTTP.

Окружение контейнера переопределяет .env — загрузчик dotenv в Laravel никогда не переопределяет реальные переменные окружения, поэтому DB_HOST и APP_ENV, заданные в Compose, имеют приоритет.

Образ для разработки повторно проверяет OPcache при каждом запросе; правки в примонтированном (bind-mount) каталоге src/ применяются мгновенно.

Built on the published image

Every Dockerfile copies the oxphp binary, liboxphp_bridge.so and the SAPI extension from ghcr.io/oxphp/oxphp. The PHP ABI must match: compile your app's extensions against the same php:<X.Y>-zts-alpine.

Routing mode follows the app's shape

One front controller under public/ → framework mode. Several physical entry points → traditional mode. One decision replaces the whole nginx rewrite file.

Security defaults, no config

Dot-path blocking 404s .env and .git/ everywhere; PHP_DENY_PATHS hardens upload dirs in traditional mode; SYMLINK_ALLOW_PATHS allows only deliberate symlink escapes.

Install through the same container

The dev image carries the PHP CLI and Composer: artisan, drush, wp and bin/magento all run via docker compose exec — no separate toolchain.

Вашего стека нет в списке?

Любое приложение с фронт-контроллером работает в режиме фреймворка — начните с рецепта Laravel и измените три переменные.