Heim Backend-Entwicklung PHP-Tutorial 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

Oct 12, 2023 am 09:58 AM
docker nginx mariadb

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
Nach dem Login kopieren

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;
        }
    }
}
Nach dem Login kopieren

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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

So installieren Sie Deepseek So installieren Sie Deepseek Feb 19, 2025 pm 05:48 PM

Es gibt viele Möglichkeiten, Deepseek zu installieren, einschließlich: kompilieren Sie von Quelle (für erfahrene Entwickler) mit vorberechtigten Paketen (für Windows -Benutzer) mit Docker -Containern (für bequem am besten, um die Kompatibilität nicht zu sorgen), unabhängig von der Methode, die Sie auswählen, bitte lesen Die offiziellen Dokumente vorbereiten sie sorgfältig und bereiten sie voll und ganz vor, um unnötige Schwierigkeiten zu vermeiden.

Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit Jun 05, 2024 pm 08:29 PM

Stellen Sie Java EE-Anwendungen mithilfe von Docker-Containern bereit: Erstellen Sie eine Docker-Datei, um das Image zu definieren, erstellen Sie das Image, führen Sie den Container aus, ordnen Sie den Port zu und greifen Sie dann im Browser auf die Anwendung zu. Beispiel für eine JavaEE-Anwendung: Die REST-API interagiert mit der Datenbank und ist nach der Bereitstellung über Docker auf localhost zugänglich.

Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Warum ist meine .txt -Datei nicht über den Domänennamen zugegriffen? Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Warum ist meine .txt -Datei nicht über den Domänennamen zugegriffen? Apr 01, 2025 pm 03:00 PM

Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Fehlerbehebung Der Grund, warum auf die TXT -Datei in letzter Zeit nicht zugegriffen werden kann. Einige Benutzer haben ein Problem beim Konfigurieren des MINI -Programms Business Domain Name: � ...

Warum tritt bei der Installation einer Erweiterung mit PECL in einer Docker -Umgebung ein Fehler auf? Wie löst ich es? Warum tritt bei der Installation einer Erweiterung mit PECL in einer Docker -Umgebung ein Fehler auf? Wie löst ich es? Apr 01, 2025 pm 03:06 PM

Ursachen und Lösungen für Fehler Bei der Verwendung von PECL zur Installation von Erweiterungen in der Docker -Umgebung, wenn die Docker -Umgebung verwendet wird, begegnen wir häufig auf einige Kopfschmerzen ...

Wie kann ich Php5.6 und PHP7 durch die NGINX -Konfiguration auf demselben Server koexistieren? Wie kann ich Php5.6 und PHP7 durch die NGINX -Konfiguration auf demselben Server koexistieren? Apr 01, 2025 pm 03:15 PM

Das gleichzeitige Ausführen mehrerer PHP -Versionen im selben System ist eine häufige Anforderung, insbesondere wenn verschiedene Projekte von verschiedenen Versionen von PHP abhängen. Wie man auf demselben ...

So führen Sie das H5 -Projekt aus So führen Sie das H5 -Projekt aus Apr 06, 2025 pm 12:21 PM

Ausführen des H5 -Projekts erfordert die folgenden Schritte: Installation der erforderlichen Tools wie Webserver, Node.js, Entwicklungstools usw. Erstellen Sie eine Entwicklungsumgebung, erstellen Sie Projektordner, initialisieren Sie Projekte und schreiben Sie Code. Starten Sie den Entwicklungsserver und führen Sie den Befehl mit der Befehlszeile aus. Vorschau des Projekts in Ihrem Browser und geben Sie die Entwicklungsserver -URL ein. Veröffentlichen Sie Projekte, optimieren Sie Code, stellen Sie Projekte bereit und richten Sie die Webserverkonfiguration ein.

Wie kann man Node.js oder Python -Dienste in Lampenarchitektur effizient integrieren? Wie kann man Node.js oder Python -Dienste in Lampenarchitektur effizient integrieren? Apr 01, 2025 pm 02:48 PM

Viele Website -Entwickler stehen vor dem Problem der Integration von Node.js oder Python Services unter der Lampenarchitektur: Die vorhandene Lampe (Linux Apache MySQL PHP) Architekturwebsite benötigt ...

See all articles