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

Zusammenfassung des MySQL Undo Log und Redo Log

Inhaltsverzeichnis Undo-Protokoll Erstellung und ...

HTML realisiert Echtzeit-Überwachungsfunktion der Hikvision-Kamera

Das Unternehmen hat vor Kurzem einige CCFA-Aktivi...

Detaillierte Erklärung der Verwendung von Nginx proxy_redirect

Heute bin ich auf ein kleines Problem gestoßen, a...

Installieren Sie Memcached und die PHP Memcached-Erweiterung unter CentOS

In Bezug auf das leistungsstarke verteilte Speich...

Implementierung der Docker-Container-Statuskonvertierung

Ein Zustandsübergangsdiagramm eines Docker-Contai...

...

Tutorial zur HTML-Tabellenauszeichnung (15): Tabellentitel

<br />Mit diesem Tag können Sie direkt einen...

Details zur Überwachung von DOM-Elementen durch MutationObServer in JavaScript

1. Grundlegende Verwendung Es kann über den Mutat...

So verwenden Sie nginx, um eine angegebene Schnittstelle (URL) zu blockieren

1. Einleitung Manchmal müssen Sie eine Servicesch...

Tabellen in HTML aufteilen und zusammenführen (colspan, rowspan)

Der Code demonstriert die horizontale Zusammenfüh...

mySql SQL-Abfrageoperation für statistische Mengen

Ich werde nicht viel Unsinn erzählen, schauen wir...

So stellen Sie LNMP und phpMyAdmin in Docker bereit

Umweltvorbereitung: Stellen Sie lnmp auf einem Ho...