Aller au contenu principal

Mettre à jour php.ini quand on utilise une image Docker

Un guide pas à pas pour mettre à jour votre fichier php.ini dans un container Docker via un volume monté dans compose.yaml. Réglez les problèmes courants comme la taille maximale d'upload.

· 3 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.

Cet article a plus d'un an, mais il a été relu le 30 juillet 2026 — son contenu est toujours exact.

Mettre à jour php.ini quand on utilise une image Docker

⚡
TL;DR

Cet article montre comment surcharger les réglages de php.ini (p. ex. la taille maximale d'upload) sur un site PHP dockerisé : créez un fichier php.ini local, montez-le par-dessus le fichier de config du container via une entrée volumes dans compose.yaml, puis lancez docker compose down && docker compose up --detach pour appliquer le changement.

Cet article répond à la situation suivante : j'utilise une image Docker pour faire tourner mon site et je dois modifier le fichier php.ini ; comment faire ?

Un exemple concret : vous avez suivi mon article Créez votre site web Joomla avec Docker et tout fonctionne bien. Le site tourne, et vous voulez uploader un gros fichier via l'interface d'administration de Joomla. Et là, vous obtenez l'erreur The selected file cannot be transferred because it is larger than the maximum upload size allowed.

Vos réglages PHP avant modification

Une des façons les plus simples de faire est de créer un fichier .ini sur votre disque et de le partager avec votre container.

Vous avez très probablement un fichier compose.yaml ; ouvrez-le dans votre éditeur.

Vos valeurs pour cette page
défaut
S'applique aux commandes de cette pageEnregistré uniquement sur cet appareil

Pour l'illustration, vous trouverez ci-dessous une copie du fichier compose.yaml le plus simple que vous pouvez récupérer dans mon article Créez votre site web Joomla avec Docker. Le vôtre peut évidemment être différent. C'est juste pour l'exemple.

services:
joomla:
image: joomla
restart: always
ports:
- 8080:80
environment:
- JOOMLA_DB_HOST=joomladb
- JOOMLA_DB_PASSWORD=example
joomladb:
image: mysql:8.0.13
restart: always
environment:
- MYSQL_ROOT_PASSWORD=example

Ce fichier Docker Compose définit deux services : un conteneur Joomla qui écoute sur le port 8080 et se connecte à une base de données MySQL. Les deux services redémarrent automatiquement en cas d'arrêt et partagent des identifiants de connexion pour communiquer entre eux.

Étape un - Mettre à jour votre fichier yaml​

La solution consiste à ajouter la ligne volumes si elle n'est pas déjà présente dans votre fichier et, surtout, la ligne qui surcharge le fichier php.ini comme ci-dessous :

services:
joomla:
image: joomla
restart: always
ports:
- 8080:80
environment:
- JOOMLA_DB_HOST=joomladb
- JOOMLA_DB_PASSWORD=example
# highlight-next-line
volumes:
# highlight-next-line
- ./php.ini:/usr/local/etc/php/php.ini
joomladb:
image: mysql:8.0.13
restart: always
environment:
- MYSQL_ROOT_PASSWORD=example

Ce fichier Docker Compose définit deux services : un conteneur Joomla qui écoute sur le port 8080 et se connecte à une base de données MySQL, et un conteneur MySQL pour stocker les données de Joomla. Les deux services redémarrent automatiquement en cas de problème.

Étape deux - Créer votre propre fichier php.ini​

La deuxième chose à faire est de créer un fichier appelé php.ini dans le même dossier que votre compose.yaml, où vous définirez vos variables ; par exemple :

file_uploads = On
memory_limit = 500M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 600

Ce fichier de configuration PHP augmente les limites par défaut pour permettre des opérations plus exigeantes : uploads de fichiers volumineux, utilisation accrue de mémoire, et durée d'exécution plus longue. Les quatre premières directives travaillent ensemble pour supporter des fichiers jusqu'à 500 Mo, tandis que la dernière donne au script 10 minutes pour s'exécuter.

Votre dossier contient donc maintenant au moins deux fichiers :

>user@machine: ~/yourproject

Étape trois - Redémarrer votre container​

Ceci fait, lancez simplement docker compose down ; docker compose up --detach dans votre terminal pour arrêter votre/vos container(s) actuel(s) et le/les redémarrer.

Au redémarrage, Docker prendra en compte vos derniers changements et mettra à jour le fichier php.ini présent dans Docker.

Vos réglages PHP après modification


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