Maison  >  Article  >  développement back-end  >  La combinaison parfaite de Docker Compose, Nginx et MariaDB : exploitez et maintenez efficacement les applications PHP

La combinaison parfaite de Docker Compose, Nginx et MariaDB : exploitez et maintenez efficacement les applications PHP

WBOY
WBOYoriginal
2023-10-12 09:58:451435parcourir

Docker Compose、Nginx和MariaDB的完美结合:高效运维PHP应用程序

La combinaison parfaite de Docker Compose, Nginx et MariaDB : exploiter et maintenir efficacement les applications PHP

Introduction

Avec le développement rapide de la technologie du cloud computing et de la conteneurisation, Docker est devenu l'un des outils les plus populaires. Dans le développement et le déploiement d'applications PHP, l'utilisation de la combinaison de Docker Compose, Nginx et MariaDB peut fournir des solutions d'exploitation et de maintenance efficaces. Cet article explique comment utiliser cette combinaison pour déployer et gérer rapidement des applications PHP, et fournit des exemples de code spécifiques.

1. Docker Compose : Un outil d'orchestration de conteneurs simple et efficace

Docker Compose est un outil d'orchestration de conteneurs simple et efficace qui peut définir et gérer le déploiement de plusieurs conteneurs Docker via un fichier YAML. Avant d'utiliser Docker Compose, nous devons installer Docker et Docker Compose localement. Une fois installé, nous pouvons créer un fichier docker-compose.yml pour définir le conteneur de notre application PHP.

Par exemple, voici un exemple de fichier docker-compose.yml :

version: '3'
services:
  php:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    ports:
      - 8000:80
    volumes:
      - ./src:/var/www/html
    depends_on:
      - mariadb
    links:
      - mariadb
  nginx:
    image: nginx:latest
    restart: always
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./src:/var/www/html
    depends_on:
      - php
  mariadb:
    image: mariadb:latest
    restart: always
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword
    volumes:
      - ./data:/var/lib/mysql

Dans l'exemple ci-dessus, nous avons défini trois services : php, nginx et mariadb. Le service php utilise notre Dockerfile personnalisé pour créer le conteneur. Il lie le port 8000 de l'hôte au port 80 du conteneur et monte le répertoire ./src de l'hôte dans le répertoire /var/www/html du conteneur. Le service nginx utilise directement l'image nginx officiellement fournie et lie le port 80 de l'hôte au port 80 du conteneur. Il monte également le répertoire ./src de l'hôte dans le répertoire /var/www/html du conteneur et personnalise la configuration nginx via le fichier ./nginx.conf. Le service mariadb utilise l'image mariadb officiellement fournie et lie le port 3306 de l'hôte au port 3306 du conteneur. Dans le même temps, nous avons également spécifié les variables d'environnement mariadb et le montage du volume.

2. Nginx : serveur Web hautes performances

Nginx est un serveur Web hautes performances et un serveur proxy inverse. Dans notre application PHP, l'utilisation de Nginx comme serveur Web frontal peut fournir une vitesse de réponse aux requêtes plus rapide et de meilleures capacités de traitement simultané. Nous pouvons déployer et gérer Nginx via des conteneurs Docker.

Par exemple, nous pouvons déployer Nginx en définissant le service nginx dans le fichier docker-compose.yml ci-dessus. Dans le même temps, vous pouvez personnaliser la configuration de Nginx en montant le fichier ./nginx.conf.

Voici un exemple de fichier nginx.conf simple :

worker_processes auto;
events {
    worker_connections 1024;
}
http {
    sendfile on;
    default_type application/octet-stream;
    server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm;
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ .php$ {
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }
}

Dans l'exemple ci-dessus, nous avons défini une configuration de base du serveur Nginx. Nous avons défini le répertoire racine de Nginx sur /var/www/html, spécifié le fichier d'index par défaut et configuré les règles de traitement pour les fichiers PHP. Ici, nous transmettons le fichier PHP au port 9000 du service PHP via la directive fastcgi_pass.

3. MariaDB : système de gestion de base de données fiable

MariaDB est un système de gestion de base de données relationnelle compatible avec MySQL. Dans notre application PHP, nous pouvons utiliser MariaDB pour stocker et gérer des données. Le déploiement et la gestion de MariaDB via des conteneurs Docker peuvent fournir des services de base de données fiables.

Par exemple, déployez MariaDB en définissant le service mariadb dans le fichier docker-compose.yml ci-dessus. Dans le même temps, vous pouvez définir le mot de passe root, le nom de la base de données, le nom d'utilisateur et le mot de passe en spécifiant des variables d'environnement.

Ce qui précède présente les étapes de base et un exemple de code pour utiliser Docker Compose, Nginx et MariaDB afin d'exploiter et de maintenir efficacement les applications PHP. En utilisant cette combinaison, nous pouvons déployer et gérer rapidement des applications PHP et fournir un environnement d'exécution fiable et performant.

Résumé

Cet article explique comment utiliser une combinaison de Docker Compose, Nginx et MariaDB pour déployer et gérer rapidement des applications PHP. À travers des exemples de code concrets, nous montrons comment définir et gérer des conteneurs via les fichiers YAML de Docker Compose, comment utiliser Nginx comme serveur Web pour offrir de meilleures performances et comment utiliser MariaDB pour stocker et gérer des données. En utilisant cette combinaison, nous pouvons facilement atteindre l’objectif d’exploiter et de maintenir efficacement les applications PHP.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn