Heim  >  Artikel  >  Backend-Entwicklung  >  Die Kombination aus Docker Compose, Nginx und MariaDB: PHP-Anwendungen effizient betreiben und warten

Die Kombination aus Docker Compose, Nginx und MariaDB: PHP-Anwendungen effizient betreiben und warten

WBOY
WBOYOriginal
2023-10-12 14:14:031755Durchsuche

Docker Compose、Nginx和MariaDB的搭配之道:高效运维PHP应用程序

So passen Docker Compose, Nginx und MariaDB zusammen: Effizienter Betrieb und Wartung von PHP-Anwendungen

Einführung:

Im heutigen Internetzeitalter wachsen die Nachfrage und der Umfang von Anwendungen, daher sind effiziente Betriebs- und Bereitstellungslösungen unerlässlich wichtig. Docker ist eine beliebte Containerisierungsplattform, die die Komplexität der Anwendungsbereitstellung und -verwaltung löst. Docker Compose ist ein leistungsstarkes Tool von Docker, mit dem wir eine Kombination mehrerer Container über eine einfache Konfigurationsdatei definieren und verwalten können. In diesem Artikel konzentrieren wir uns auf die Verwendung von Docker Compose mit Nginx und MariaDB für den effizienten Betrieb und die Wartung von PHP-Anwendungen und stellen spezifische Codebeispiele bereit.

1. Einführung in Docker Compose

Docker Compose ist ein von Docker offiziell eingeführtes Tool zum Definieren und Verwalten mehrerer Docker-Container. Über eine einfache YAML-Datei können Sie problemlos mehrere Container, Abhängigkeiten zwischen Containern, Netzwerkkonfiguration usw. definieren.

Zu den Vorteilen der Verwendung von Docker Compose gehören:

  1. Vereinfachter Bereitstellungsprozess: Durch die Definition von Konfigurationsdateien kann die gesamte Anwendung schnell und konsistent bereitgestellt werden.
  2. Verbesserte Skalierbarkeit: Anwendungen können problemlos über mehrere Hosts hinweg skaliert werden.
  3. Einfach zu verwalten und zu überwachen: Sie können Container über Docker Compose-Befehle starten, stoppen, neu starten und Protokolle anzeigen.

2. Verwendung von Nginx

Nginx ist ein leichter, leistungsstarker Webserver, der als Reverse-Proxy-Server, Lastausgleichsserver, statischer Ressourcenserver und für andere Zwecke verwendet werden kann. In unserer PHP-Anwendung können wir Nginx als Reverse-Proxy-Server verwenden, um Anfragen an den PHP-FPM-Server im Backend weiterzuleiten.

Hier ist eine Beispielkonfigurationsdatei (docker-compose.yml) mit Docker Compose und Nginx:

version: '3'

services:
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./public:/var/www/html

  php:
    image: php:7.4-fpm
    volumes:
      - ./public:/var/www/html

networks:
  default:
    external:
      name: my-network

In der obigen Konfiguration haben wir einen Dienst namens nginx und einen Dienst namens php definiert. Unter anderem verwendet der Nginx-Dienst das offizielle Nginx-Image und ordnet den Port 80 des Containers dem Port 80 des Hosts zu. Gleichzeitig mounten wir die Nginx-Konfigurationsdatei (nginx.conf) und das öffentliche Verzeichnis, in dem sich unsere PHP-Anwendung befindet, im Container.

3. Verwendung von MariaDB

MariaDB ist ein kostenloses, relationales Open-Source-Datenbankverwaltungssystem und ein Zweig von MySQL, das leistungsstarke und äußerst zuverlässige Datenbanklösungen bereitstellt. In unserer PHP-Anwendung können wir MariaDB als Backend-Datenbank verwenden.

Hier ist eine Beispielkonfigurationsdatei (docker-compose.yml) mit Docker Compose und MariaDB:

version: '3'

services:
  db:
    image: mariadb:latest
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=secret
      - MYSQL_DATABASE=my_database
      - MYSQL_USER=my_user
      - MYSQL_PASSWORD=my_password
    volumes:
      - ./data:/var/lib/mysql

  php:
    image: php:7.4-fpm
    volumes:
      - ./public:/var/www/html

networks:
  default:
    external:
      name: my-network

In der obigen Konfiguration haben wir einen Dienst namens db und einen Dienst namens php definiert. Unter anderem verwendet der DB-Dienst das offizielle MariaDB-Image und ordnet den 3306-Port des Containers dem 3306-Port des Hosts zu. Wir legen auch die relevante Konfiguration der Datenbank über Umgebungsvariablen fest, wie z. B. Root-Passwort, Datenbankname, Benutzer und Passwort usw. Gleichzeitig mounten wir den Datenbankordner im Container, um eine dauerhafte Speicherung der Daten sicherzustellen.

4. Vollständige Beispielkonfiguration

Das Folgende ist eine vollständige Beispielkonfiguration für den effizienten Betrieb und die Wartung von PHP-Anwendungen mit Docker Compose, Nginx und MariaDB:

version: '3'

services:
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./public:/var/www/html
    depends_on:
      - php
    networks:
      - my-network

  php:
    image: php:7.4-fpm
    volumes:
      - ./public:/var/www/html
    networks:
      - my-network

  db:
    image: mariadb:latest
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=secret
      - MYSQL_DATABASE=my_database
      - MYSQL_USER=my_user
      - MYSQL_PASSWORD=my_password
    volumes:
      - ./data:/var/lib/mysql
    networks:
      - my-network

networks:
  my-network:
    external: true

In der obigen Konfiguration definieren wir eine Datei namens Nginx Services, einen Dienst namens php und einen Dienst namens db. Gleichzeitig haben wir auch ein externes Netzwerk namens my-network definiert, um diese drei Dienste zu verbinden. Der Nginx-Dienst hängt vom PHP-Dienst ab, daher verwenden wir das Schlüsselwort depend_on, um diese Abhängigkeit anzugeben.

5. Zusammenfassung

Das Obige sind Methoden und spezifische Codebeispiele für die Verwendung von Docker Compose, Nginx und MariaDB, um PHP-Anwendungen effizient zu betreiben und zu warten. Durch die Verwendung des Docker Compose-Tools können wir schnell Anwendungen erstellen und verwalten, die mehrere Container enthalten, und so die Bereitstellungseffizienz sowie den Betriebs- und Wartungskomfort verbessern. Als Hochleistungs-Webserver kann Nginx uns bei der Implementierung von Funktionen wie Reverse-Proxy und Lastausgleich helfen. MariaDB bietet als zuverlässiges Datenbankmanagementsystem leistungsstarke und hochverfügbare Datenspeicherlösungen für unsere Anwendungen.

Ich hoffe, dass dieser Artikel Ihnen hilft, Docker Compose, Nginx und MariaDB zu verstehen und zu verwenden, und ich wünsche Ihnen bessere Ergebnisse und Erfahrungen beim Betrieb und der Wartung von PHP-Anwendungen!

Das obige ist der detaillierte Inhalt vonDie Kombination aus Docker Compose, Nginx und MariaDB: PHP-Anwendungen effizient betreiben und warten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn