Heim >Backend-Entwicklung >PHP-Tutorial >Die perfekte Kombination aus Docker Compose, Nginx und MariaDB: Best Practices für die Bereitstellung von PHP-Anwendungen

Die perfekte Kombination aus Docker Compose, Nginx und MariaDB: Best Practices für die Bereitstellung von PHP-Anwendungen

王林
王林Original
2023-10-12 11:24:331416Durchsuche

Docker Compose、Nginx和MariaDB的完美组合:部署PHP应用程序的最佳实践

Die perfekte Kombination aus Docker Compose, Nginx und MariaDB: Best Practices für die Bereitstellung von PHP-Anwendungen

Einführung:
In der modernen Webanwendungsentwicklung ist der Einsatz von Containerisierungstechnologie zu einem Trend geworden. Die Containerisierungstechnologie kann eine Anwendung und ihre Abhängigkeiten in einen einzigen Container packen, sodass die Anwendung in jeder Umgebung ausgeführt werden kann, die die Containerisierungstechnologie unterstützt. Docker ist derzeit die beliebteste Containerisierungstechnologie, die die Bereitstellung, Verwaltung und Erweiterung von Anwendungen vereinfachen kann.

Für mit PHP entwickelte Webanwendungen können wir Docker Compose verwenden, um mehrere Container zu verwalten, einschließlich Nginx, PHP, Datenbank usw. In diesem Artikel wird erläutert, wie Sie Docker Compose, Nginx und MariaDB zum Bereitstellen und Verwalten einer PHP-Anwendung verwenden, und es werden spezifische Codebeispiele bereitgestellt.

  1. Docker und Docker Compose installieren
    Zuerst müssen wir Docker und Docker Compose auf dem Host-Computer installieren. Sie können die offizielle Docker-Website (https://www.docker.com/) zum Herunterladen und Installieren besuchen. Sobald die Installation abgeschlossen ist, können wir bestätigen, dass Docker korrekt installiert ist, indem wir den folgenden Befehl ausführen:

    docker --version
    docker-compose --version
  2. Erstellen Sie eine Docker Compose-Datei.
    Erstellen Sie eine Datei namens docker-compose.yml im Stammverzeichnis des Projekts, um die zu definieren Anwendungsdienste und entsprechende Konfigurationen. Hier ist ein Beispiel für eine einfache docker-compose.yml-Datei:

    version: '3'
    services:
      web:
     build:
       context: .
       dockerfile: Dockerfile
     ports:
       - 80:80
     volumes:
       - ./src:/var/www/html
     depends_on:
       - db
      db:
     image: mariadb
     environment:
       MYSQL_ROOT_PASSWORD: 123456
       MYSQL_DATABASE: mydb
       MYSQL_USER: user
       MYSQL_PASSWORD: password
     volumes:
       - db-data:/var/lib/mysql
    volumes:
      db-data:

    Die obige docker-compose.yml-Datei definiert zwei Dienste, einen ist ein Webdienst zum Ausführen von Nginx und PHP und der andere ist ein Datenbankdienst zum Ausführen von MariaDB . Der Webdienst stellt Port 80 dem externen Host zur Verfügung und ordnet den Ordner src im Projektverzeichnis dem Verzeichnis /var/www/html im Container zu. Der DB-Dienst legt die Umgebungsvariablen und Datenvolumes von MariaDB für die dauerhafte Speicherung von Datenbankdaten fest.

  3. Dockerfile erstellen
    Um das für den Webdienst erforderliche benutzerdefinierte Image zu erstellen, müssen wir eine Datei mit dem Namen Dockerfile im Projektverzeichnis erstellen. Hier ist ein Beispiel für eine einfache Docker-Datei:

    FROM php:7.4-fpm
    RUN docker-php-ext-install pdo_mysql
    WORKDIR /var/www/html

    Die obige Docker-Datei basiert auf dem offiziellen php:7.4-fpm-Image, hat die pdo_mysql-Erweiterung installiert und legt das Arbeitsverzeichnis auf /var/www/html fest.

  4. Container starten
    Führen Sie den folgenden Befehl im Stammverzeichnis des Projekts aus, um den Container zu starten:

    docker-compose up -d

    Durch Ausführen des obigen Befehls startet Docker die Web- und Datenbankdienste entsprechend der Konfiguration im Docker-Compose .yml-Datei. Der Parameter -d gibt an, dass der Container im Hintergrundmodus ausgeführt wird.

  5. Nginx konfigurieren
    Damit Nginx Anfragen korrekt an die PHP-Anwendung im Webdienst weiterleiten kann, müssen wir der Nginx-Konfiguration die folgenden Konfigurationselemente hinzufügen:

    server {
     listen 80;
     server_name localhost;
     root /var/www/html;
     index index.php index.html;
    
     location / {
         try_files $uri $uri/ /index.php?$query_string;
     }
    
     location ~ .php$ {
         fastcgi_pass web:9000;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
     }
    }

    Die obige Konfigurationsdatei leitet die Anfrage an das Web weiter service Führen Sie den PHP-FPM-Prozess aus und übergeben Sie PHP-bezogene Umgebungsvariablen an PHP-FPM.

  6. PHP-Anwendung schreiben
    Schreiben Sie PHP-Anwendungscode in den Ordner src im Projektverzeichnis. Hier nehmen wir ein einfaches Hello World-Programm als Beispiel:

    <?php
    echo "Hello World!";
  7. Zugriff auf die Anwendung
    Sie können die laufende PHP-Anwendung im Browser anzeigen, indem Sie auf http://localhost zugreifen.

Zusammenfassung:
Durch die Verwendung einer Kombination aus Docker Compose, Nginx und MariaDB können wir PHP-Anwendungen einfach bereitstellen und verwalten. Docker Compose bietet eine einfache und leistungsstarke Möglichkeit, mehrere Container zu definieren und auszuführen, Nginx kann als Webserver eine große Anzahl gleichzeitiger Anforderungen verarbeiten und MariaDB bietet einen stabilen und zuverlässigen Datenbankdienst. Wir hoffen, dass die Leser durch die Einführung und Beispiele in diesem Artikel diese Technologien besser verstehen, anwenden und in tatsächlichen Projekten davon profitieren können.

Das obige ist der detaillierte Inhalt vonDie perfekte Kombination aus Docker Compose, Nginx und MariaDB: Best Practices für die Bereitstellung von PHP-Anwendungen. 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