La conteneurisation de PHP et Nginx implique la création de conteneurs Docker pour chaque service et leur configuration pour qu'ils fonctionnent ensemble. Vous trouverez ci-dessous les étapes pour créer une configuration Docker de base pour PHP et Nginx. Cet exemple est réalisé à partir d'une application PHP simple.
1- Créer la structure du projet :
Commencez par créer un projet avec la structure suivante :
//projet ├── index.php ├── nginx │ └── nginx.conf ├── Dockerfile ├── Dockerfile-nginx └── docker-compose.yml 2- Ajouter une application PHP :
Créez une application PHP simple. Par exemple, dans root "./index.php" :
<?php echo "Bonjour, je suis Hamza !"; 3- Configuration de Nginx :
Créez un fichier de configuration Nginx dans nginx/nginx.conf :
server { listen 80; index index.php; server_name localhost; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; error_page 404 /index.php; root /var/www; client_max_body_size 20m; location ~ \.php$ { try_files $uri =404; fastcgi_pass app:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location / { try_files $uri $uri/ /index.php?$query_string; gzip_static on; } } 4- Écrire le fichier Dockerfile :
FROM php:8.0.2-fpm WORKDIR /var/www 5- Créez un fichier Dockerfile-nginx pour Nginx à la racine du projet :
FROM nginx:1.19-alpine WORKDIR /var/www 6- Créez un fichier .dockerignore à la racine du projet :
docker-compose Dockerfile* 7- Écrire le fichier Docker Compose :
Créer un fichier docker-compose.yml à la racine du projet :
version: "3" services: app: container_name: app-container build: context: ./ dockerfile: ./Dockerfile working_dir: /var/www/ restart: always volumes: - ./:/var/www networks: - app-network nginx: container_name: nginx-container build: context: ./ dockerfile: ./Dockerfile-nginx restart: always ports: - "8000:80" volumes: - ./nginx:/etc/nginx/conf.d - ./:/var/www depends_on: - app networks: - app-network networks: app-network: driver: bridge Nous créons un réseau app-network, car nous conteneurisons PHP et Nginx séparément avec le même réseau, du fait que les conteneurs ont un réseau isolé de notre système local.
8- Build et exécuter des conteneurs :
docker-compose up --build Accéder à l'application :
Ouvrez votre navigateur et allez sur http://localhost:8000. Vous devriez voir le message "Bonjeur, Je suis Hamza !".
Top comments (2)
Merci d'avoir partagé ! J'ai jamais configuré Docker tout seul, mais vous avez donner l'impression que c'est facile. Peut-être je vais essayer enfin, et peut-être je peux comprendre comment configurer un conteneur de MySQL aussi !
Il n'est pas prêt pour la production, vous devez encore configurer nginx pour des cas d'utilisation avancés. Ce n'est que pour les tests, ou si vous voulez juste vous salir les mains avec PHP et que vous voulez essayer différentes versions de PHP séparément de votre machine.