Einführung
Die Datenmigration ist häufig ein notwendiger Schritt während der Entwicklung und Bereitstellung von PHP -Anwendungen. Die Migration vorhandener Daten in eine neue Umgebung erfordert nicht nur die Sicherstellung der Datenintegrität, sondern auch die Effizienz und Stabilität des Prozesses. Dies kann leicht unter Verwendung der Kombination von Docker Compose, Nginx und Mariadb erreicht werden. In diesem Artikel wird ausführlich eingeführt, wie diese Tools verwendet werden, um Daten an PHP -Anwendungen anhand bestimmter Betriebsschritte und Konfigurationsbeispiele zu migrieren.
Vorbereitung
Docker Compose ist ein Multi-Container-Anwendungsmanagement-Tool, mit dem mehrere Dienste über eine Konfigurationsdatei einheitlich definiert und starten können. Nginx dient als Reverse -Proxy -Server, um HTTP -Anforderungen an den entsprechenden PHP -Container weiterzuleiten. Mariadb ist unser Datenbankdienst, der Anwendungsdaten speichert. Zunächst müssen wir eine Docker -Komponierungsdatei erstellen, um den Dienst zu definieren.
Docker Compose Configuration
Im Docker Compose Configuration -Datei müssen wir zwei Dienste definieren: Nginx und Mariadb. Hier ist ein grundlegendes Konfigurationsbeispiel:
Version: '3'
Dienstleistungen:
nginx:
Bild: Nginx
Ports:
- 80:80
Bände:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
Mariadb:
Bild: Mariadb: 10.5
Umfeld:
- MySQL_ROOT_PASSWORD = Secret
Bände:
- ./data:/var/lib/mysql
In dieser Konfiguration verwendet der NGINX -Dienst den offiziellen Mirror- und Map -Port 80 zum Hostport. Der MariADB -Dienst verwendet das offizielle Bild von MariADB und legt das Kennwort des Root -Benutzers über Umgebungsvariablen fest. Das Datenverzeichnis ist auch zur anhaltenden Speicherung montiert.
Nginx -Konfiguration
Als nächstes müssen wir NGINX konfigurieren, um sicherzustellen, dass die HTTP -Anforderungen korrekt an den PHP -Anwendungscontainer weiterleiten können. Hier ist ein vereinfachtes Beispiel für die Konfiguration von `nginx.conf`:
Server {
Hören Sie 80;
server_name localhost;
Standort / {
proxy_pass http: // php-app;
proxy_set_header host $ host;
}
}
Hier leiten wir alle HTTP-Anfragen an einen PHP-Container mit dem Namen PHP-App weiter und übergeben die angeforderten Host-Header-Informationen.
Starten Sie den Service
Nach Abschluss der Konfiguration kann der Dienst mit dem folgenden Befehl gestartet werden:
Docker -Compose Up -d
Dadurch wird der Docker -Container für Nginx und Mariadb gestartet. Sie können überprüfen, ob Nginx ordnungsgemäß funktioniert, indem Sie http: // localhost besuchen.
Datenmigration
Angenommen, Sie haben bereits eine Exportdatei `backup.sql` von MySQL -Datenbank und möchten sie nun in den MariADB -Container importieren. Sie können den Import der Datenbank über den folgenden Befehl vervollständigen:
Docker Exec -i<mariadb_container_name> Mysql -uroot -p<password> <backup.sql
In diesem Befehl, ist der Name des Mariadb -Behälters. Es ist das Kennwort des Root -Benutzers, und Backup.sql ist die Datenbanksicherungsdatei, die Sie importieren möchten.
Regelmäßiges Backup
Um regelmäßig Datensicherungen durchzuführen, können Sie ein einfaches Shell -Skript schreiben:
#!/bin/bash
Docker Exec<mariadb_container_name> Mysqldump -uroot -p<password><database_name> > backup.sql
Dieses Skript erstellt eine Sicherungsdatei mit dem Namen backup.sql , wo ist der Name des Mariadb -Behälters. Es ist das Root -Passwort. Es ist der Name der Datenbank, die Sie sichern möchten.
Zusammenfassen
Mit Docker Compose, Nginx und MariADB können Sie problemlos PHP -Anwendungen und Datenbanken Containerisieren und eine effiziente Datenmigration und -sicherung aktivieren. Containerisierte Anwendungen eignen sich nicht nur für die Bereitstellung und Migration, sondern auch über die NGINX -Proxy -Weiterleitung, wodurch die Datenmigration zwischen verschiedenen Umgebungen einfacher und stabiler wird.