ПРИМЕРЫ

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

От 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
Примечания
—

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

—

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

—

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

Официальный образ в основе

Dockerfile копирует бинарник oxphp, liboxphp_bridge.so и расширение SAPI из ghcr.io/oxphp/oxphp. ABI PHP должен совпадать: собирайте свои расширения на том же php:<X.Y>-zts-alpine.

Режим маршрутизации — по форме приложения

Фронт-контроллер в public/ → режим фреймворка. Несколько точек входа → традиционный режим. Одно решение вместо всего файла rewrite-правил nginx.

Защита по умолчанию, без конфигурации

Dot-пути отдают 404 на .env и .git/; PHP_DENY_PATHS закрывает каталоги загрузок в традиционном режиме; SYMLINK_ALLOW_PATHS пропускает только намеренные симлинки.

Установка — в том же контейнере

В dev-образе есть PHP CLI и Composer: artisan, drush, wp, bin/magento — всё через docker compose exec. Отдельный тулчейн не нужен.

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

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