Aller au contenu principal

La façon la plus simple de lancer un script / site PHP

La façon la plus simple de lancer un script ou un site PHP standard instantanément avec Docker. Une seule commande docker run et votre code est en ligne pour un test rapide.

· 2 minutes de lecture
Voir la source
Christophe
Amoureux de Markdown, WSL et Docker ~ Curieux insatiable.
Cet article existe aussi en anglais — lire la version originale.

Traduction automatique

Cette traduction a été produite par une IA. Elle peut contenir des contresens ou des maladresses, en particulier sur les termes techniques. En cas de doute, consultez l'article de référence en anglais — c'est lui qui fait foi.

Journal des modifications

Dernière
Updated PHP image from php:8.3-apache (EOL Dec 2022) to php:8.3-apache.

La façon la plus simple de lancer un script / site PHP

⚡
TL;DR

Cet article montre la manière la plus rapide de lancer un script ou un site PHP standard en local : déposez le code dans un dossier et lancez docker run -d -p 8080:80 -u ${UID}:${GID} -v "$PWD":/var/www/html php:8.3-apache, puis rendez-vous sur http://127.0.0.1:8080 — aucune installation locale de PHP ou d'Apache nécessaire, et changer le tag de l'image suffit à changer de version de PHP instantanément.

Imaginez la situation : vous voulez exécuter un bout de code PHP standard (sans aucune dépendance) comme celui ci-dessous :

<?php
echo "<h2>Incorrect, silent bug</h2>";
print_r(json_decode(utf8_decode("Ipso lorem"), true));
echo "<h2>Incorrect, we got an exception</h2>";
print_r(json_decode(utf8_decode("Ipso lorem"), true, 512, JSON_THROW_ON_ERROR));

Ce script démontre la différence de comportement de json_decode avec et sans le flag JSON_THROW_ON_ERROR. La première tentative échoue silencieusement sans retourner de valeur utile, tandis que la seconde lève une exception quand le JSON est invalide.

Le plus simple est de :

  • Créer un répertoire temporaire avec mkdir /tmp/snippet && cd $_,
  • Y créer un fichier index.php (avec votre snippet comme ci-dessus),
  • Lancer cette commande dans la console : docker run -d -p 8080:80 -u ${UID}:${GID} -v "$PWD":/var/www/html php:8.3-apache et,
  • Ouvrir http://127.0.0.1:8080.

C'est fait.

Quelques explications sur la commande docker run -d -p 8080:80 -u ${UID}:${GID} -v "$PWD":/var/www/html php:8.3-apache :

  • Nous voulons rendre le site local accessible sur le port 8080 (donc http://127.0.0.1:8080),
  • Nous voulons synchroniser le dossier courant (c'est-à-dire /tmp/snippet) avec le container Docker, ainsi toute modification d'un fichier dans /tmp/snippet sera immédiatement reflétée dans Docker et donc dans votre navigateur,
  • Et nous voulons utiliser php:8.3-apache. Remplacez simplement par php:8.4-apache par exemple pour passer à une version plus récente.

Trois choses qui vous serviront ensuite : Mettre à jour php.ini quand on utilise une image Docker quand les réglages par défaut sont trop serrés, Docker init supporte maintenant PHP pour transformer cette ligne de commande en un vrai Dockerfile + compose.yaml, et jakzal/phpqa pour lancer tous les outils de qualité PHP sur ce code — toujours sans rien installer.

Pour un site sans PHP du tout, Lancer un site HTML en quelques secondes avec Docker est la version encore plus légère.


Cet article vous a-t-il été utile ?
Avez-vous suivi les étapes de cet article ?