Heim  >  Artikel  >  Backend-Entwicklung  >  Schneller Bereitstellungsprozess für PHP-Anwendungen mit Docker Compose, Nginx und MariaDB

Schneller Bereitstellungsprozess für PHP-Anwendungen mit Docker Compose, Nginx und MariaDB

WBOY
WBOYOriginal
2023-10-12 15:12:111408Durchsuche

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的快速部署流程

Verwenden Sie Docker Compose, Nginx und MariaDB, um den schnellen Bereitstellungsprozess von PHP-Anwendungen zu implementieren.

Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie Docker Compose, Nginx und MariaDB verwenden, um den schnellen Bereitstellungsprozess von PHP-Anwendungen zu implementieren. Wir werden Docker Compose verwenden, um die Konfiguration der Containeranwendung zu definieren und zu verwalten, Nginx als Webserver und MariaDB als Datenbank. Durch das Erstellen und Starten dieser Container können wir PHP-Anwendungen schnell bereitstellen und ausführen.

Einführung:
Mit der Entwicklung der Cloud-Computing- und Containerisierungstechnologie wird es immer einfacher, Anwendungen schnell bereitzustellen. Mit Docker Compose können wir die von unserer Anwendung benötigten Container definieren und verwalten, indem wir eine YAML-Konfigurationsdatei schreiben. In diesem Artikel zeigen wir, wie Sie mit Docker Compose eine PHP-Anwendung definieren und bereitstellen, die Nginx und MariaDB enthält.

Schritt 1: Docker und Docker Compose installieren
Stellen Sie zunächst sicher, dass Docker und Docker Compose auf Ihrem System installiert sind. Sie können es von der offiziellen Website herunterladen und den Anweisungen zur Installation folgen.

Schritt 2: Projektverzeichnis erstellen
Bevor wir beginnen, erstellen wir ein neues Projektverzeichnis. In diesem Verzeichnis erstellen wir eine Datei namens docker-compose.yml, die unsere Anwendungskonfiguration definiert.

Schritt 3: Docker Compose-Konfigurationsdatei erstellen
Erstellen Sie im Projektverzeichnis eine Datei namens docker-compose.yml und verwenden Sie den folgenden Beispielcode als Vorlage:

version: '3'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
    volumes:
      - ./app:/var/www/html
    depends_on:
      - db
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword
    volumes:
      - ./data:/var/lib/mysql

Im obigen Beispiel haben wir zwei Dienste definiert: Web und db. Der Webdienst ist der Dienst, in dem sich unsere PHP-Anwendung befindet, und eine Datei namens Dockerfile wird zum Erstellen des Webcontainers verwendet. Wir müssen den lokalen Port 80 dem Port 80 des Containers zuordnen und den Anwendungscode im Verzeichnis /var/www/html des Containers bereitstellen. Der DB-Dienst ist unser MariaDB-Datenbankdienst, der das neueste mariadb:latest-Image verwendet und das Root-Passwort und den Datenbanknamen der Datenbank festlegt.

Schritt 4: Dockerfile erstellen
Erstellen Sie im Projektverzeichnis eine Datei namens Dockerfile und verwenden Sie den folgenden Beispielcode als Vorlage:

FROM php:7.4-fpm

RUN apt-get update && apt-get install -y 
    nginx 
    libmcrypt-dev 
    libjpeg-dev 
    libpng-dev 
    libfreetype6-dev 
    libxml2-dev 
    libzip-dev 
    zip 
    unzip

RUN docker-php-ext-install mysqli pdo pdo_mysql xml zip

COPY nginx.conf /etc/nginx/sites-available/default

WORKDIR /var/www/html

CMD service nginx start && php-fpm

Im obigen Beispiel haben wir php:7.4-fpm als Basis-Image verwendet und installiert einige PHP-Erweiterungen und Nginx. Wir kopieren außerdem die Datei nginx.conf in das Verzeichnis /etc/nginx/sites-available/default des Containers und legen das Arbeitsverzeichnis auf /var/www/html fest.

Schritt 5: Nginx-Konfigurationsdatei erstellen
Erstellen Sie im Projektverzeichnis eine Datei namens nginx.conf und verwenden Sie den folgenden Beispielcode als Vorlage:

server {
    listen 80;
    server_name localhost;

    root /var/www/html;

    location / {
        index index.php;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        fastcgi_pass web:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Im obigen Beispiel haben wir einen einfachen Nginx-Server definiert, hören Sie zu Port 80. Das Stammverzeichnis ist auf /var/www/html eingestellt und die Verarbeitungsmethode von PHP-Dateien ist konfiguriert.

Schritt 6: Container erstellen und starten
Öffnen Sie im Projektverzeichnis ein Terminal und führen Sie den folgenden Befehl aus, um den Container zu erstellen und zu starten:

docker-compose up -d

Dieser Befehl erstellt und startet den Container der Anwendung basierend auf Docker Compose Konfigurationsdatei. Während des Build-Prozesses lädt Docker automatisch die erforderlichen Images und Abhängigkeiten herunter und installiert sie.

Schritt 7: Testen Sie die Anwendung
Jetzt können Sie Ihre PHP-Anwendung testen, indem Sie http://localhost in Ihrem Webbrowser aufrufen. Wenn alles in Ordnung ist, wird die Willkommensseite der Anwendung angezeigt.

Fazit:
Durch die Verwendung von Docker Compose, Nginx und MariaDB können wir PHP-Anwendungen schnell bereitstellen und ausführen. Durch die Definition und Verwaltung der Konfiguration von Containeranwendungen können wir den Anwendungsbereitstellungsprozess vereinfachen und beschleunigen. Ich hoffe, dass dieser Artikel Ihnen dabei hilft, eine schnelle Bereitstellung von PHP-Anwendungen zu erreichen.

Das obige ist der detaillierte Inhalt vonSchneller Bereitstellungsprozess für PHP-Anwendungen mit Docker Compose, Nginx und MariaDB. 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