Maison > Article > développement back-end > Migration de données pour les applications PHP utilisant Docker Compose, Nginx et MariaDB
Utilisez Docker Compose, Nginx et MariaDB pour mettre en œuvre la migration des données des applications PHP
Dans le processus de développement et de déploiement d'applications PHP, nous rencontrons souvent des situations de migration de données, c'est-à-dire la migration de données existantes d'un environnement vers un autre environnement. Pour simplifier ce processus, nous pouvons utiliser Docker Compose, Nginx et MariaDB pour mettre en œuvre la migration des données. Cet article vous donnera une introduction détaillée sur la façon d'utiliser ces outils et fournira des exemples de code spécifiques.
Docker Compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs. Il utilise des fichiers YAML pour configurer les services, réseaux, volumes, etc. de l'application. Nginx est un serveur Web et un serveur proxy inverse populaire qui peut être utilisé pour transférer les requêtes HTTP vers le conteneur PHP approprié. MariaDB est un système de gestion de base de données relationnelle open source qui peut être utilisé pour stocker et gérer les données d'application.
Tout d’abord, nous devons créer un fichier Docker Compose pour définir les services de notre application. Dans cet exemple, nous allons créer deux services : l'un est le serveur Nginx et l'autre est la base de données MariaDB. Voici un exemple de fichier Docker Compose 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 environment: - MYSQL_ROOT_PASSWORD=secret volumes: - ./data:/var/lib/mysql
Dans l'exemple ci-dessus, nous avons défini deux services : nginx et mariadb. Le service nginx utilise l'image officielle Nginx et mappe le port 80 du conteneur au port 80 de l'hôte. Nous montons également un fichier de configuration nginx.conf personnalisé sur le chemin /etc/nginx/conf.d/default.conf
du conteneur. Le service mariadb utilise l'image officielle de MariaDB et définit une variable d'environnement pour définir le mot de passe de l'utilisateur root. Nous avons également monté un répertoire pour stocker les données de la base de données. /etc/nginx/conf.d/default.conf
路径。mariadb服务使用MariaDB的官方镜像,并设置了一个环境变量来设置root用户的密码。我们还挂载了一个目录用于存储数据库的数据。
接下来,我们需要创建一个nginx.conf配置文件来定义Nginx服务器的虚拟主机。在这个例子中,我们将配置Nginx将所有的HTTP请求转发到一个名为php-app
的PHP容器。以下是一个简单的nginx.conf配置文件示例:
server { listen 80; server_name localhost; location / { proxy_pass http://php-app; proxy_set_header Host $host; } }
在上述示例中,我们定义了一个名为php-app
的代理服务器,并将所有的HTTP请求都转发到该服务器。我们还使用了proxy_set_header
指令来将请求的Host头部传递给代理服务器。
现在,我们可以使用以下命令启动我们的应用程序:
docker-compose up -d
这将创建并启动包含Nginx和MariaDB服务的容器。我们可以通过访问http://localhost
来验证Nginx是否正常工作。如果一切正常,你应该能够看到你的PHP应用程序的首页。
接下来,我们将介绍如何实现数据迁移。假设我们已经有一个MySQL数据库导出文件backup.sql
,我们想将其导入到我们的MariaDB容器中。以下是一个简单的命令示例:
docker exec -i <mariadb_container_name> mysql -uroot -p<password> < backup.sql
在上述命令中,fb86933f67ce8306e5f20be52aba8df4
是你的MariaDB容器的名称,cb1ebc435675187bdcfb539b370c2e37
是你设置的root用户的密码,backup.sql
是数据库导出文件。此命令将导入数据库到MariaDB容器中。
如果你希望定期进行数据备份,可以通过一个简单的shell脚本来实现。以下是一个示例的备份脚本:
#!/bin/bash docker exec <mariadb_container_name> mysqldump -uroot -p<password> <database_name> > backup.sql
在上述示例中,fb86933f67ce8306e5f20be52aba8df4
是MariaDB容器的名称,cb1ebc435675187bdcfb539b370c2e37
是root用户的密码,6b7267f525327f2a23dcb01791a146aa
是你要备份的数据库名称。该脚本将创建一个名为backup.sql
php-app
. Voici un exemple simple de fichier de configuration nginx.conf : rrreee
Dans l'exemple ci-dessus, nous avons défini un serveur proxy nomméphp-app
et lui avons transmis toutes les requêtes HTTP. Nous utilisons également la directive proxy_set_header
pour transmettre l'en-tête Host de la requête au serveur proxy. Maintenant, nous pouvons démarrer notre application en utilisant la commande suivante : http://localhost
. Si tout va bien, vous devriez pouvoir voir la page d’accueil de votre application PHP. backup.sql
que nous souhaitons importer dans notre conteneur MariaDB. Voici un exemple de commande simple : fb86933f67ce8306e5f20be52aba8df4
est le nom de votre conteneur MariaDB et cb1ebc435675187bdcfb539b370c2e37
est ce que vous avez défini. Le mot de passe de l'utilisateur root, backup.sql
est le fichier d'exportation de la base de données. Cette commande importera la base de données dans le conteneur MariaDB. fb86933f67ce8306e5f20be52aba8df4
est le nom du conteneur MariaDB, cb1ebc435675187bdcfb539b370c2e37
est le mot de passe de l'utilisateur root, 6b7267f525327f2a23dcb01791a146aa
est le nom de la base de données que vous souhaitez sauvegarder. Ce script créera un fichier de sauvegarde de base de données nommé backup.sql
. 🎜🎜Pour résumer, la migration des données des applications PHP peut être facilement réalisée à l'aide de Docker Compose, Nginx et MariaDB. En conteneurisant les applications et les bases de données, nous pouvons facilement déployer et migrer nos applications et transmettre les requêtes via Nginx. J'espère que cet article pourra vous aider dans la migration des données lors du développement et du déploiement d'applications PHP. 🎜🎜Matériaux de référence : 🎜🎜🎜Docker Compose documentation officielle : https://docs.docker.com/compose/🎜🎜Documentation officielle Nginx : https://nginx.org/en/docs/🎜🎜Documentation officielle MariaDB : https ://mariadb.com/kb/en/documentation/🎜🎜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!