Heim  >  Artikel  >  Backend-Entwicklung  >  Out-of-the-box-Lösungen für Docker Compose, Nginx und MariaDB: Richten Sie schnell eine PHP-Umgebung ein

Out-of-the-box-Lösungen für Docker Compose, Nginx und MariaDB: Richten Sie schnell eine PHP-Umgebung ein

WBOY
WBOYOriginal
2023-10-12 12:46:051459Durchsuche

Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境

Out-of-the-box-Lösungen für Docker Compose, Nginx und MariaDB: Richten Sie schnell eine PHP-Umgebung ein

Übersicht:

Bei der Entwicklung und Bereitstellung von PHP-Anwendungen ist es entscheidend, eine zuverlässige und einfach einzurichtende zu verwaltende Umgebung. Docker Compose, Nginx und MariaDB können eine Lösung zum schnellen Aufbau einer PHP-Umgebung bieten. In diesem Artikel erfahren Sie, wie Sie mit Docker Compose Container konfigurieren und ausführen, Nginx als Webserver verwenden, MariaDB als Datenbank verwenden und schnell eine PHP-Umgebung erstellen.

1. Docker und Docker Compose installieren:

Zuerst müssen wir Docker und Docker Compose auf dem lokalen Computer installieren. Installationsanleitungen für verschiedene Betriebssysteme finden Sie auf der offiziellen Docker-Website. Überprüfen Sie nach Abschluss der Installation, ob die Installation erfolgreich war. Sie können den folgenden Befehl im Terminal oder in der Eingabeaufforderung eingeben:

docker --version
docker-compose --version

Wenn die Versionsnummer korrekt angezeigt werden kann, bedeutet dies, dass Docker und Docker Compose erfolgreich installiert wurden.

2. Erstellen Sie die Docker Compose-Datei:

Als nächstes müssen wir eine Datei namens docker-compose.yml erstellen und darin unsere Service- und Containerkonfiguration definieren.

version: '3'
services:
  nginx:
    build:
      context: .
      dockerfile: nginx.dockerfile
    ports:
      - 80:80
    depends_on:
      - php
  php:
    build:
      context: .
      dockerfile: php.dockerfile
    volumes:
      - ./src:/var/www/html
  mariadb:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=secret

Erklärung:

  • nginx-Dienst: Verwenden Sie den Build-Befehl, um einen Nginx-basierten Container zu erstellen, ordnen Sie Port 80 des lokalen Computers Port 80 des Containers zu und verlassen Sie sich auf den PHP-Dienst.
  • php-Dienst: Verwenden Sie den Build-Befehl, um einen Container zu erstellen, der die erforderlichen PHP-Erweiterungen enthält, und mounten Sie das Verzeichnis ./src des lokalen Computers im Verzeichnis /var/www/html des Containers, um synchrone Aktualisierungen des Codes zu erreichen .
  • mariadb-Dienst: Verwenden Sie das Standard-MariaDB-Docker-Image und setzen Sie das ROOT-Passwort auf „geheim“.

3. Dockerfile und Konfigurationsdateien erstellen:

Als nächstes müssen wir Dockerfile und Konfigurationsdateien erstellen, um beim Erstellen des Images die notwendigen Konfigurationen und Abhängigkeiten bereitzustellen.

  1. nginx.dockerfile:
FROM nginx

COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf

Erklärung: Erstellen Sie ein neues Image aus dem offiziellen Nginx-Image und kopieren Sie dann die lokalen Dateien nginx.conf und default.conf an den entsprechenden Speicherort des Containers.

  1. php.dockerfile:
FROM php:7.4-fpm

RUN apt-get update && apt-get install -y 
    zlib1g-dev 
    libzip-dev 
    && docker-php-ext-install zip pdo_mysql

COPY php.ini /usr/local/etc/php/conf.d/custom.ini

Erläuterung: Erstellen Sie ein neues Image aus dem offiziellen PHP-Image, verwenden Sie dann den Befehl apt-get, um die erforderlichen Abhängigkeiten zu installieren, und installieren Sie die Erweiterungen zip und pdo_mysql über docker-php-ext -install-Befehl. Kopieren Sie abschließend die lokale Datei php.ini in den Container.

  1. nginx.conf:
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    
    sendfile        on;
    keepalive_timeout  65;

    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   php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

Erläuterung: Dies ist die Konfigurationsdatei von Nginx. Konfiguriert mit Standardprotokollpfaden, Ereigniseinstellungen, http-Einstellungen und einem grundlegenden Serverblock zur Bearbeitung von Anfragen und zur Übergabe der PHP-Verarbeitung an den PHP-Container.

  1. default.conf:
server {
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

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

Erläuterung: Dies ist die Standardkonfigurationsdatei von Nginx. Identisch mit den Serverblockeinstellungen in der Datei nginx.conf.

4. Beginnen Sie mit dem Erstellen und Ausführen des Containers:

Nachdem wir alle Konfigurationsdateien eingerichtet haben, können wir mit dem Erstellen und Ausführen des Containers beginnen. Gehen Sie in einem Terminal oder einer Eingabeaufforderung in das Verzeichnis, in dem sich die Datei docker-compose.yml befindet, und führen Sie den folgenden Befehl aus:

docker-compose up --build

Dieser Befehl startet den Prozess der Erstellung des Images und der Ausführung des Containers. Sobald der Vorgang abgeschlossen ist, sehen Sie, dass der Container ausgeführt wird und die PHP-Anwendung über http://localhost zugänglich ist.

Wenn Sie den Container im Hintergrund ausführen müssen, können Sie den folgenden Befehl verwenden:

docker-compose up -d --build

Dieser Befehl führt den Container im Daemon-Modus aus.

Zusammenfassung:

Mit sofort einsatzbereiten Lösungen für Docker Compose, Nginx und MariaDB können wir schnell eine PHP-Umgebung erstellen und verwalten. Die Portabilitäts- und Containerisierungsvorteile von Docker machen die Entwicklung und Bereitstellung von PHP-Anwendungen einfacher und zuverlässiger. Ich hoffe, dieser Artikel war hilfreich für Sie. Weitere Informationen zu den Codebeispielen finden Sie in den in diesem Artikel erwähnten Konfigurationsdateien.

Das obige ist der detaillierte Inhalt vonOut-of-the-box-Lösungen für Docker Compose, Nginx und MariaDB: Richten Sie schnell eine PHP-Umgebung ein. 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