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

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

WBOY
WBOYOriginal
2023-10-12 09:58:451384Durchsuche

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

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

Einführung

Mit der rasanten Entwicklung der Cloud-Computing- und Containerisierungstechnologie ist Docker zu einem der beliebtesten Tools geworden. Bei der Entwicklung und Bereitstellung von PHP-Anwendungen können durch die Kombination von Docker Compose, Nginx und MariaDB effiziente Betriebs- und Wartungslösungen bereitgestellt werden. In diesem Artikel wird erläutert, wie Sie mit dieser Kombination PHP-Anwendungen schnell bereitstellen und verwalten können, und es werden spezifische Codebeispiele bereitgestellt.

1. Docker Compose: Ein einfaches und effizientes Container-Orchestrierungstool

Docker Compose ist ein einfaches und effizientes Container-Orchestrierungstool, das die Bereitstellung mehrerer Docker-Container über eine YAML-Datei definieren und verwalten kann. Bevor wir Docker Compose verwenden können, müssen wir Docker und Docker Compose lokal installieren. Nach der Installation können wir eine docker-compose.yml-Datei erstellen, um den Container für unsere PHP-Anwendung zu definieren.

Hier ist zum Beispiel ein Beispiel für eine docker-compose.yml-Datei:

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

Im obigen Beispiel haben wir drei Dienste definiert: PHP, Nginx und Mariadb. Der PHP-Dienst verwendet unsere benutzerdefinierte Docker-Datei, um den Container zu erstellen. Es bindet Port 8000 des Hosts an Port 80 des Containers und mountet das ./src-Verzeichnis des Hosts in das /var/www/html-Verzeichnis des Containers. Der Nginx-Dienst verwendet direkt das offiziell bereitgestellte Nginx-Image und bindet Port 80 des Hosts an Port 80 des Containers. Außerdem wird das Verzeichnis ./src des Hosts im Verzeichnis /var/www/html des Containers bereitgestellt und die Nginx-Konfiguration über die Datei ./nginx.conf angepasst. Der Mariadb-Dienst verwendet das offiziell bereitgestellte Mariadb-Image und bindet den 3306-Port des Hosts an den 3306-Port des Containers. Gleichzeitig haben wir auch die Mariadb-Umgebungsvariablen und die Volume-Montage spezifiziert.

2. Nginx: Hochleistungs-Webserver

Nginx ist ein Hochleistungs-Webserver und Reverse-Proxy-Server. In unserer PHP-Anwendung kann die Verwendung von Nginx als Front-End-Webserver eine schnellere Antwortgeschwindigkeit auf Anfragen und bessere Möglichkeiten zur Parallelitätsverarbeitung bieten. Wir können Nginx über Docker-Container bereitstellen und verwalten.

Zum Beispiel können wir Nginx bereitstellen, indem wir den Nginx-Dienst in der Datei docker-compose.yml oben definieren. Gleichzeitig können Sie die Nginx-Konfiguration anpassen, indem Sie die Datei ./nginx.conf mounten.

Hier ist ein Beispiel einer einfachen nginx.conf-Datei:

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;
        }
    }
}

Im obigen Beispiel haben wir eine grundlegende Nginx-Serverkonfiguration definiert. Wir haben das Stammverzeichnis von Nginx auf /var/www/html festgelegt, die Standardindexdatei angegeben und die Verarbeitungsregeln für PHP-Dateien konfiguriert. Hier leiten wir die PHP-Datei über die Direktive fastcgi_pass an den 9000-Port des PHP-Dienstes weiter.

3. MariaDB: Zuverlässiges Datenbankverwaltungssystem

MariaDB ist ein relationales Datenbankverwaltungssystem, das mit MySQL kompatibel ist. In unserer PHP-Anwendung können wir MariaDB zum Speichern und Verwalten von Daten verwenden. Durch die Bereitstellung und Verwaltung von MariaDB über Docker-Container können zuverlässige Datenbankdienste bereitgestellt werden.

Stellen Sie beispielsweise MariaDB bereit, indem Sie den Mariadb-Dienst in der Datei docker-compose.yml oben definieren. Gleichzeitig können Sie durch Angabe von Umgebungsvariablen das Root-Passwort, den Datenbanknamen, den Benutzernamen und das Passwort festlegen.

Das Obige sind die grundlegenden Schritte und Beispielcode für die Verwendung von Docker Compose, Nginx und MariaDB, um PHP-Anwendungen effizient zu betreiben und zu warten. Durch den Einsatz dieser Kombination können wir PHP-Anwendungen schnell bereitstellen und verwalten und eine leistungsstarke und zuverlässige Betriebsumgebung bereitstellen.

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie eine Kombination aus Docker Compose, Nginx und MariaDB verwenden, um PHP-Anwendungen schnell bereitzustellen und zu verwalten. Anhand konkreter Codebeispiele zeigen wir, wie Sie Container über die YAML-Dateien von Docker Compose definieren und verwalten, wie Sie Nginx als Webserver verwenden, um eine bessere Leistung bereitzustellen, und wie Sie MariaDB zum Speichern und Verwalten von Daten verwenden. Durch den Einsatz dieser Kombination können wir das Ziel, PHP-Anwendungen effizient zu betreiben und zu warten, problemlos erreichen.

Das obige ist der detaillierte Inhalt vonDie perfekte 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