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.
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
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.
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.
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.
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.
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!";
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!