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

Mysql praktische Übungen einfaches Bibliotheksverwaltungssystem

Inhaltsverzeichnis 1. Sortierfunktion 2. Vorberei...

So erstellen Sie ein React-Projekt mit Vite

Inhaltsverzeichnis Vorwort Erstellen Sie ein Vite...

Analyse des Prinzips der MySQL-Indexlängenbeschränkung

Dieser Artikel stellt hauptsächlich die Analyse d...

Detailliertes Installationstutorial für Windows 10 + MySQL 8.0.11 Zip

Vorbereiten: Downloadadresse für das MySQL 8.0 Wi...

Vue implementiert die Bildfrequenzwiedergabe des Karussells

In diesem Artikelbeispiel wird der spezifische Co...

So löschen Sie eine Eigenschaft eines Objekts in JavaScript

1. löschen delete ist die einzige wirkliche Mögli...

Detailliertes Tutorial zur Installation von Mysql5.7.19 auf Centos7 unter Linux

1. MySQL herunterladen URL: https://dev.mysql.com...

Zusammenfassung der grundlegenden Operationen für MySQL-Anfänger

Bibliotheksbetrieb Abfrage 1.SHOW DATABASE; ----A...

JavaScript Canvas implementiert Tic-Tac-Toe-Spiel

In diesem Artikel wird der spezifische Code von J...

Verwendung des Linux-Stat-Befehls

1. Befehlseinführung Der Befehl stat wird verwend...

JS implementiert die zufällige Generierung von Bestätigungscodes

In diesem Artikelbeispiel wird der spezifische JS...

Zusammenfassung der allgemeinen Docker-Befehle und Tipps

Installationsskript Ubuntu / CentOS Es scheint ei...

Implementierung der Vue-Einzeldateikomponente

Ich habe kürzlich über Vue gelesen. Ich habe eine...