PRZYKŁADY

Prawdziwe aplikacje, zweryfikowane od początku do końca

Od Laravela po WordPressa na OxPHP — każdy przepis to samowystarczalny projekt Docker Compose: Dockerfile, plik compose, polecenia instalacji oraz szczegóły, których nie opisuje dokumentacja pisana pod nginx + PHP-FPM.

Laravel

Kanoniczna aplikacja w trybie framework.

PHP
8.5
Tryb routingu
Framework
Usługi
MySQL
Instalacja
composer create-project
environment · docker-compose.yml
ENTRY_FILE=index.php
INTERNAL_ADDR=0.0.0.0:9090
ACCESS_LOG=all
Uwagi

ENTRY_FILE=index.php wybiera tryb framework: public/ staje się katalogiem głównym dokumentów, więc .env, app/ oraz vendor/ nigdy nie są osiągalne przez HTTP.

Środowisko kontenera nadpisuje .env — loader dotenv Laravela nigdy nie nadpisuje prawdziwych zmiennych środowiskowych, więc DB_HOST i APP_ENV ustawione w Compose wygrywają.

Obraz deweloperski ponownie waliduje OPcache przy każdym żądaniu; zmiany w podmontowanym katalogu src/ (bind mount) obowiązują natychmiast.

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.

Nie ma Twojego stacku na liście?

Każda aplikacja z kontrolerem frontowym działa w trybie framework — zacznij od przepisu dla Laravela i dostosuj trzy zmienne.