So erstellen Sie eine lnmp-Umgebung im Docker

So erstellen Sie eine lnmp-Umgebung im Docker

Erstellen eines Projektverzeichnisses

mkdir php

Erstellen Sie die folgende Projektstruktur

  • Im Verzeichnis „sites“ werden die Projektdateien abgelegt.
  • Das Verzeichnis „Dienste“ speichert die dienstbezogene Konfiguration
  • Skript Benutzerdefiniertes Skript platzieren
├── Readme.md
├── docker-compose.yml
├── Skript
├── Dienstleistungen
│ ├── MariaDB
│ │ └── Docker-Datei
│ ├── nginx
│ │ ├── Docker-Datei
│ │ ├── conf.d
│ │ │ └── default.conf
│ │ └── nginx.conf
│ ├── php
│ │ └── Docker-Datei
│ └── Redis
│ └── Docker-Datei
└── Seiten
 ├── index.html
 └── index.php

 
8 Verzeichnisse, 10 Dateien

Bearbeiten Sie die Docker-Compose-Datei

Version: "3"
Leistungen: 
 php:
 Erstellen: ./services/php
 Anzahl der Anschlüsse: 
 # - "9001:9000"
 Containername: lnmp-php
 Neustart: immer
 Bände: 
  - ./sites:/www
 Netzwerke:
  lnmp_net:
  IPv4-Adresse: 101.11.11.10

 nginx:
 Erstellen: ./services/nginx
 Häfen:
  - „81:80“
  - „444:443“
 Containername: lnmp-nginx
 Neustart: immer
 Bände: 
  - ./sites:/www
  - ./services/nginx/nginx.conf:/etc/nginx/nginx.conf
  - ./services/nginx/conf.d:/etc/nginx/conf.d:rw
 Netzwerke:
  lnmp_net:
  IPv4-Adresse: 101.11.11.11

Netzwerke:
 lnmp_net:
 Treiber: Brücke
 ipam:
  Konfiguration:
  - Subnetz: 101.11.11.0/20

Bearbeiten Sie die Datei services/nginx

VON nginx:1.17.0-alpine

# Aktualisieren Sie die Installationsquelle RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

# Stellen Sie die Zeitzone auf Shanghai ein. RUN apk update && apk add --upgrade \
 && apk fügt tzdata hinzu \
 && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
 && echo "Asien/Shanghai" > /etc/Zeitzone \
 && apk del tzdata

Dienste/PHP-Datei bearbeiten

VON php:7.3.6-fpm-alpine3.9

# Aktualisieren Sie die Installationsquelle RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

# Stellen Sie die Zeitzone auf Shanghai ein. RUN apk update && apk add --no-cache tzdata autoconf gcc g++ make zlib-dev curl-dev\
 && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
 && echo "Asien/Shanghai" > /etc/Zeitzone \
 && apk del tzdata \
 && docker-php-ext-install mysqli pdo_mysql opcache \
 && pecl installiere grpc protobuf xdebug yaf yar swoole \
 && Docker-PHP-Ext-Aktivieren von xdebug yaf yar swoole grpc protobuf 

Unsere lnmp-Umgebung ist im Wesentlichen wie oben aufgebaut. Jetzt konfigurieren wir die PHP-Analyse.

Ändern Sie services/nginx/nginx.conf, Sie können es entsprechend Ihren Anforderungen ändern.

Benutzer nginx;
Arbeiterprozesse automatisch;

Fehlerprotokoll /var/log/nginx/error.log warnen;
pid /var/run/nginx.pid;


Ereignisse {
 Arbeiterverbindungen 1024;
}


http {
 /etc/nginx/mime.types einschließen;
 Standardtyp Anwendung/Oktett-Stream;

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

 Zugriffsprotokoll /var/log/nginx/access.log Haupt;

 sendfile an;
 #tcp_nopush ein;

 KeepAlive-Timeout 65;

 #gzip ein;

 schließen Sie /etc/nginx/conf.d/*.conf ein;
}

Ändern Sie die Dateien im Verzeichnis services/nginx/conf.d

Dieses Verzeichnis enthält die Konfigurationsdatei für jedes Projekt, in der je nach Bedarf einzelne oder mehrere Dienste konfiguriert werden können.

Server {
 hören Sie 80;
 Servername localhost;

 #Zeichensatz koi8-r;
 #access_log /var/log/nginx/host.access.log main;

  #root /usr/share/nginx/html;
 Wurzel /www;
 index.php index.html index.htm;


 #Fehlerseite 404 /404.html;

 # Server-Fehlerseiten auf die statische Seite /50x.html umleiten
 #
 Fehlerseite 500 502 503 504 /50x.html;
 Standort = /50x.html {
  root /usr/share/nginx/html;
 }

 # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht
 #
 #Standort ~ \.php$ {
 # Proxy-Passwort http://127.0.0.1;
 #}

 # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht.
 #
 Standort ~ \.php$ {
 #Wurzel-HTML;
  fastcgi_pass 101.11.11.10:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $Dokumentstammsatz$fastcgi_script_name;
  fastcgi_params einschließen;
 }

 # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis
 # stimmt mit nginx überein
 #
 #Standort ~ /\.ht {
 # alles ablehnen;
 #}
}

Starten des Dienstes

cd php && docker-compose up --build -d

Die Ausführungszeit der obigen Schritte variiert je nach Netzwerkgeschwindigkeit und Docker-Konfiguration. Da einige Erweiterungen in PHP kompiliert sind, können Sie sie auch nach Ihren eigenen Bedürfnissen löschen. Besuchen Sie http://127.0.0.1:81 über den Browser. Wenn Sie die Ausgabeinformationen von phpinfo sehen, herzlichen Glückwunsch, Ihre lnmp-Umgebung wurde bereitgestellt.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So erstellen Sie schnell eine LNMP-Umgebung mit Docker (neueste Version)
  • Verwenden Sie Docker, um ein verteiltes lnmp-Image zu erstellen
  • So stellen Sie die LNMP-Architektur im Docker bereit
  • Verwenden Sie Docker, um eine integrierte Service-LNMP-Umgebung zu erstellen
  • Detaillierte Erläuterung zur Verwendung von Docker zum Erstellen einer LNMP-Umgebung
  • Beispiel für die Kompilierung von LNMP im Docker-Container

<<:  So implementieren Sie eine Array-Lazy-Evaluation-Bibliothek in JavaScript

>>:  Eine kurze Diskussion zur MySQL-Indexoptimierungsanalyse

Artikel empfehlen

Vue implementiert Multi-Grid-Eingabefeld auf mobilem Endgerät

Vor Kurzem hat das Unternehmen die Anforderung ge...

So ändern Sie das ROOT-Passwort in MySql8.0 und höheren Versionen richtig

Bereitstellungsumgebung: Installationsversion Red...

MySQL-Dienst und Datenbankverwaltung

Inhaltsverzeichnis 1. Anweisungen zum Starten und...

Besprechen Sie den Wert von Webstandards aus vier Aspekten mit einer Mindmap

Ich habe einige Werte grob aufgelistet, um die Di...

Detaillierte Erklärung zu Unique Constraints und NULL in MySQL

Vorwort Eine Anforderung, die ich zuvor zur Verei...

Detaillierte Anweisungen zur Installation von SuPHP auf CentOS 7.2

Standardmäßig wird PHP unter CentOS 7 als Apache ...

JavaScript-Tipps zur Verbesserung Ihrer Programmierkenntnisse

Inhaltsverzeichnis 1. Filtern Sie eindeutige Wert...

Win2008 R2 MySQL 5.5 ZIP-Format MySQL-Installation und -Konfiguration

Installation und Konfiguration von MySQL im ZIP-F...

Zusammenfassung von Beispielen gängiger Methoden von JavaScript-Arrays

Inhaltsverzeichnis Gängige Array-Methoden concat(...

Detaillierte Erklärung der Überwachungseigenschaften von Vue

Inhaltsverzeichnis Vue-Monitoreigenschaften Was i...

Vue.js verarbeitet Icon-Symbole über Komponenten

Icon-Icon-Verarbeitungslösung Das Ziel dieses Dat...

Detaillierte Erläuterung der Implementierung der Nginx-Prozesssperre

Inhaltsverzeichnis 1. Die Rolle der Nginx-Prozess...