La combinaison parfaite de Docker Compose, Nginx et MariaDB : Meilleures pratiques pour le déploiement d'applications PHP
Introduction :
Dans le développement d'applications Web modernes, l'utilisation de la technologie de conteneurisation est devenue une tendance. La technologie de conteneurisation peut regrouper une application et ses dépendances dans un seul conteneur, afin que l'application puisse s'exécuter dans n'importe quel environnement prenant en charge la technologie de conteneurisation. Docker est actuellement la technologie de conteneurisation la plus populaire, capable de simplifier le déploiement, la gestion et l'expansion des applications.
Pour les applications Web développées avec PHP, nous pouvons utiliser Docker Compose pour gérer plusieurs conteneurs, notamment Nginx, PHP, base de données, etc. Cet article expliquera comment utiliser Docker Compose, Nginx et MariaDB pour déployer et gérer une application PHP, et fournira des exemples de code spécifiques.
Installer Docker et Docker Compose
Tout d'abord, nous devons installer Docker et Docker Compose sur la machine hôte. Vous pouvez visiter le site officiel de Docker (https://www.docker.com/) pour télécharger et installer. Une fois l'installation terminée, nous pouvons confirmer que Docker est correctement installé en exécutant la commande suivante :
docker --version docker-compose --version
Créez un fichier Docker Compose
Créez un fichier appelé docker-compose.yml dans le répertoire racine du projet pour définir le services applicatifs et configurations correspondantes. Voici un exemple de fichier docker-compose.yml simple :
version: '3' services: web: build: context: . dockerfile: Dockerfile ports: - 80:80 volumes: - ./src:/var/www/html depends_on: - db db: image: mariadb environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: mydb MYSQL_USER: user MYSQL_PASSWORD: password volumes: - db-data:/var/lib/mysql volumes: db-data:
Le fichier docker-compose.yml ci-dessus définit deux services, l'un est un service Web pour exécuter Nginx et PHP, et l'autre est un service de base de données pour Run MariaDB. . Le service Web expose le port 80 à l'hôte externe et mappe le dossier src du répertoire du projet au répertoire /var/www/html du conteneur. Le service db définit les variables d'environnement et les volumes de données de MariaDB pour le stockage persistant des données de base de données.
Créer un Dockerfile
Afin de créer l'image personnalisée requise pour le service Web, nous devons créer un fichier nommé Dockerfile dans le répertoire du projet. Voici un exemple de fichier Docker simple :
FROM php:7.4-fpm RUN docker-php-ext-install pdo_mysql WORKDIR /var/www/html
Le Dockerfile ci-dessus est basé sur l'image officielle php:7.4-fpm, a l'extension pdo_mysql installée et définit le répertoire de travail sur /var/www/html.
Démarrez le conteneur
Exécutez la commande suivante dans le répertoire racine du projet pour démarrer le conteneur :
docker-compose up -d
En exécutant la commande ci-dessus, Docker démarrera les services Web et db selon la configuration dans docker-compose Fichier .yml. Le paramètre -d indique l'exécution du conteneur en mode arrière-plan.
Configuration de Nginx
Pour que Nginx transmette correctement les requêtes à l'application PHP dans le service Web, nous devons ajouter les éléments de configuration suivants à la configuration de Nginx :
server { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass web:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Le fichier de configuration ci-dessus transmet la requête au Web service Exécutez le processus PHP-FPM et transmettez les variables d'environnement liées à PHP à PHP-FPM.
Écriture d'une application PHP
Écrivez le code de l'application PHP dans le dossier src sous le répertoire du projet. Ici, nous prenons comme exemple un simple programme Hello World :
<?php echo "Hello World!";
Résumé :
En utilisant une combinaison de Docker Compose, Nginx et MariaDB, nous pouvons facilement déployer et gérer des applications PHP. Docker Compose fournit un moyen simple et puissant de définir et d'exécuter plusieurs conteneurs, Nginx en tant que serveur Web peut gérer un grand nombre de requêtes simultanées et MariaDB fournit un service de base de données stable et fiable. Nous espérons que grâce à l'introduction et aux exemples de cet article, les lecteurs pourront mieux comprendre et appliquer ces technologies et en bénéficier dans des projets réels.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!