Heim >Backend-Entwicklung >PHP-Tutorial >Containerisieren Sie PHP-Anwendungen mit Docker Compose, Nginx und MariaDB
Titel: Containerisierung von PHP-Anwendungen mit Docker Compose, Nginx und MariaDB
Einführung: Mit der rasanten Entwicklung der Containerisierungstechnologie achten immer mehr Entwickler auf die Verwendung von Docker für die Anwendungsbereitstellung und -verwaltung. In diesem Artikel wird die Verwendung von Docker Compose, Nginx und MariaDB zur Implementierung der Containerisierung von PHP-Anwendungen vorgestellt und spezifische Codebeispiele gegeben, um den Lesern ein besseres Verständnis und eine bessere Übung zu ermöglichen.
Hier ist ein Beispiel unserer Docker Compose-Konfigurationsdatei (docker-compose.yml):
version: '3' services: webserver: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - php php: image: php:7.4-fpm volumes: - ./php.ini:/usr/local/etc/php/php.ini:ro - ./code:/var/www/html depends_on: - db db: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: your_database MYSQL_USER: your_username MYSQL_PASSWORD: your_password volumes: - ./data:/var/lib/mysql
Wir haben drei Dienste, die durch diese Konfigurationsdatei definiert sind: Webserver, PHP und DB. Der Webserver-Dienst verwendet das Nginx-Image und ordnet Port 80 des Hosts Port 80 des Containers zu. Der PHP-Dienst verwendet das PHP-FPM-Image und mountet das Codeverzeichnis im Container. Der Datenbankdienst verwendet die MariaDB-Spiegelung und legt den Benutzernamen, das Kennwort und das Datenspeicherverzeichnis der Datenbank fest.
nginx.conf:
worker_processes auto; events { worker_connections 1024; } http { server { listen 80; location / { root /var/www/html; index index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass php:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log"; } } }
php.ini:
date.timezone = Asia/Shanghai upload_max_filesize = 2M post_max_size = 8M memory_limit = 128M
Im obigen Beispiel konfiguriert nginx.conf den Überwachungsport und die Proxy-Regeln von Nginx, um dynamische Anfragen an den PHP-Dienst weiterzuleiten. php.ini konfiguriert einige allgemeine PHP-Parameter, wie z. B. Zeitzone und Einschränkungen beim Hochladen von Dateien.
$ docker-compose up -d
Nach dem Ausführen dieses Befehls lädt Docker den Container automatisch herunter und startet ihn entsprechend der Konfigurationsdatei. Mit dem Befehl docker-compose ps
können Sie laufende Container anzeigen.
Das Obige ist nur ein einfaches Beispiel, die tatsächliche Situation kann komplexer sein und der Leser kann entsprechend seinen eigenen Bedürfnissen entsprechende Anpassungen und Erweiterungen vornehmen. Ich hoffe, dieser Artikel kann den Lesern etwas helfen!
Das obige ist der detaillierte Inhalt vonContainerisieren Sie PHP-Anwendungen mit Docker Compose, Nginx und MariaDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!