EXEMPLES

De vraies applications, vérifiées de bout en bout

De Laravel à WordPress sur OxPHP — chaque recette est un projet Docker Compose autonome : Dockerfile, fichier compose, commandes d'installation et les détails que la documentation écrite pour nginx + PHP-FPM ne couvre pas.

Laravel

L'application canonique en mode framework.

PHP
8.5
Mode de routage
Framework
Services
MySQL
Installation
composer create-project
environment · docker-compose.yml
ENTRY_FILE=index.php
Notes
—

ENTRY_FILE=index.php sélectionne le mode framework : public/ devient la racine des documents, de sorte que .env, app/ et vendor/ ne sont jamais accessibles via HTTP.

—

L'environnement du conteneur a la priorité sur .env — le chargeur dotenv de Laravel ne remplace jamais les vraies variables d'environnement, de sorte que DB_HOST et APP_ENV définis dans Compose l'emportent.

—

L'image de développement revalide OPcache à chaque requête ; les modifications sur le répertoire src/ monté en bind s'appliquent instantanément.

Construit sur l'image publiée

Chaque Dockerfile copie le binaire oxphp, liboxphp_bridge.so et l'extension SAPI depuis ghcr.io/oxphp/oxphp. L'ABI PHP doit correspondre : compilez les extensions de votre application sur le même php:<X.Y>-zts-alpine.

Le mode de routage suit la forme de l'application

Un seul contrôleur frontal sous public/ → mode framework. Plusieurs points d'entrée physiques → mode traditionnel. Une décision remplace tout le fichier de réécriture nginx.

Sécurité par défaut, sans configuration

Le blocage des chemins en point renvoie 404 pour .env et .git/ partout ; PHP_DENY_PATHS durcit les répertoires d'upload en mode traditionnel ; SYMLINK_ALLOW_PATHS n'autorise que les échappements de liens symboliques délibérés.

Installation via le même conteneur

L'image de développement embarque le CLI PHP et Composer : artisan, drush, wp et bin/magento s'exécutent tous via docker compose exec — aucune chaîne d'outils séparée.

Votre stack n'est pas dans la liste ?

Toute application dotée d'un contrôleur frontal fonctionne en mode framework — partez de la recette Laravel et ajustez trois variables.