ПРИКЛАДИ

Реальні застосунки, перевірені від початку до кінця

Від 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.

Безпечні типові налаштування без конфігурації

Блокування шляхів із крапкою повертає 404 на .env і .git/ будь-де; PHP_DENY_PATHS захищає каталоги завантажень у традиційному режимі; SYMLINK_ALLOW_PATHS дозволяє лише навмисні виходи через симлінки.

Встановлення через той самий контейнер

Образ для розробки містить PHP CLI і Composer: artisan, drush, wp і bin/magento запускаються через docker compose exec — окремий тулчейн не потрібен.

Вашого стеку немає в переліку?

Будь-який застосунок із фронт-контролером працює в режимі фреймворку — почніть із рецепта Laravel і змініть три змінні.