Position actuelle: Accueil> Derniers articles> Simplifiez le processus de migration des données des applications PHP à l'aide de Docker Compose, Nginx et MariADB

Simplifiez le processus de migration des données des applications PHP à l'aide de Docker Compose, Nginx et MariADB

M66 2025-06-25

Introduction

La migration des données est souvent une étape nécessaire pendant le développement et le déploiement d'applications PHP. La migration des données existantes vers un nouvel environnement nécessite non seulement d'assurer l'intégrité des données, mais également d'assurer l'efficacité et la stabilité du processus. Cela peut être réalisé facilement en utilisant la combinaison de Docker Compose, Nginx et MariADB. Cet article présentera en détail comment utiliser ces outils pour migrer les données vers des applications PHP via des étapes de fonctionnement spécifiques et des exemples de configuration.

Préparation

Docker Compose est un outil de gestion des applications multi-continents qui peut définir et démarrer uniformément plusieurs services via un fichier de configuration. Nginx sert de serveur proxy inversé pour transférer les demandes HTTP au conteneur PHP correspondant. MARIADB est notre service de base de données qui stocke les données d'application. Tout d'abord, nous devons créer un fichier Docker Compose pour définir le service.

Configuration de la composition de Docker

Dans le fichier de configuration Docker Compose, nous devons définir deux services: Nginx et MariADB. Voici un exemple de configuration de base:
  
Version: '3'
services:
  nginx:
    Image: nginx
    PORTS:
      - 80:80
    Volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
  Mariadb:
    Image: Mariadb: 10.5
    environnement:
      - mysql_root_password = secret
    Volumes:
      - ./data:/var/lib/mysql

Dans cette configuration, le service NGINX utilisera le Mirror officiel et le port de carte 80 sur le port hôte. Le service MARIADB utilise l'image officielle MARIADB et définit le mot de passe de l'utilisateur racine via des variables d'environnement. Le répertoire de données est également monté pour un stockage persistant.

Configuration Nginx

Ensuite, nous devons configurer Nginx pour nous assurer qu'il peut transmettre correctement les demandes HTTP au conteneur d'application PHP. Voici un exemple simplifié de la configuration `nginx.conf`:
  
serveur {
    Écoutez 80;
    server_name localhost;

    emplacement / {
        proxy_pass http: // php-app;
        proxy_set_header host $ host;
    }
}

Ici, nous transférons toutes les demandes HTTP à un conteneur PHP nommé PHP-App et passons les informations d'en-tête hôte demandées.

Démarrer le service

Une fois la configuration terminée, le service peut être démarré avec la commande suivante:
  
docker-compose up -d

Cela commencera le conteneur Docker pour Nginx et MariADB. Vous pouvez vérifier que Nginx fonctionne correctement en visitant http: // localhost .

Migration des données

Supposons que vous ayez déjà un fichier d'exportation `backup.sql` de la base de données MySQL et que vous souhaitez maintenant l'importer dans le conteneur MARIADB. Vous pouvez terminer l'importation de la base de données via la commande suivante:
  
docker exec -i<mariadb_container_name> mysql -uroot -p<password> <Backup.sql

Dans cette commande, est le nom du conteneur mariaDB. Il s'agit du mot de passe de l'utilisateur racine, et Backup.sql est le fichier de sauvegarde de la base de données que vous souhaitez importer.

Sauvegarde régulière

Pour effectuer régulièrement des sauvegardes de données, vous pouvez écrire un simple script de shell:
  
#! / bin / bash
docker<mariadb_container_name> mysqldump -uroot -p<password><database_name> > backup.sql

Ce script crée un fichier de sauvegarde nommé backup.sql , où est le nom du conteneur mariaDB. C'est le mot de passe racine. C'est le nom de la base de données que vous souhaitez sauvegarder.

Résumer

Avec Docker Compose, Nginx et MariADB, vous pouvez facilement conteneuriser les applications et bases de données PHP et activer une migration et une sauvegarde efficaces des données. Les applications conteneurisées sont non seulement pratiques pour le déploiement et la migration, mais aussi par le transfert de proxy Nginx, ce qui facilite la migration des données entre différents environnements.