Detaillierte Schritte zum Einrichten des Hosts Nginx + Docker WordPress Mysql

Detaillierte Schritte zum Einrichten des Hosts Nginx + Docker WordPress Mysql

Umfeld

  • Linux 3.10.0-693.el7.x86_64
  • Docker-Version 18.09.0
  • Docker-Compose Version 1.17.0

Installieren

Installieren Sie Docker-Abhängigkeiten

$ sudo yum install -y yum-utils Gerätemapper-Persistent-Data lvm2

Installieren Sie docker-ce

 $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 $ sudo yum installiere docker-ce
 $ sudo systemctl Docker starten
 $ docker --version
 $ sudo docker run hallo-welt

Installieren Sie Docker-Compose

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
$ sudo chmod +x /usr/bin/docker-compose
$ docker-compose --version

Schreiben Sie docker-compose.yml

$ mkdir ./blog
$ CD-Blog
$ sudo vim docker-compose.yml
Version: '3'

Leistungen:
 db:
  Bild:mysql:5.7
  volumes: #Datenvolume, Zuordnung lokaler Ordner - db_data:/var/lib/mysql
  Ports: # Wenn Sie keine Portzuordnung schreiben, kann die Außenwelt keine Verbindung zu MySQL herstellen (die WordPress-Verbindung unten ist in Ordnung)
  - „3306:3306“                       
  Neustart: immer
  Umfeld:
  MYSQL_ROOT_PASSWORD: xxx
  MYSQL_DATABASE: WordPress
  MYSQL_USER: WordPress
  MYSQL_PASSWORD: wordpress

 Wordpress:
  depends_on: #Hängt vom oben genannten Datenbankdienst ab
  -db
  Bild: wordpress:latest
  Bände:
  - wp_site:/var/www/html
  Häfen:
  - "8000:80"
  Neustart: immer
  privilegiert: wahr
  Umfeld:
  # Sie können den obigen Dienstnamen + Port direkt verwenden, um den Link WORDPRESS_DB_HOST zu erhalten: db:3306
  WORDPRESS_DB_USER: WordPress
  WORDPRESS_DB_PASSWORD: WordPress
  # Domänennamen definieren WORDPRESS_CONFIG_EXTRA: "define('WP_HOME','https://blog.amoyiki.com'); define('WP_SITEURL','https://blog.amoyiki.com');"

Bände:
 Datenbankdaten:
 wp_site:

Ausführen des Containers

# Starten Sie $ sudo docker-compose up -d
# Herunterfahren$ sudo docker-compose down

Jetzt können Sie über http://ip:port darauf zugreifen. Wenn Sie feststellen, dass Sie nicht darauf zugreifen können, können Sie das Containerprotokoll auf Fehler überprüfen.

$ sudo docker-compose ps
 Name Befehl Status Ports    

blog_db_1 docker-entrypoint.sh mysqld Hoch 0.0.0.0:3306->3306/tcp, 33060/tcp
blog_wordpress_1 docker-entrypoint.sh apach ... Nach oben 0.0.0.0:8000->80/tcp 
# Das „WordPress“ am Ende ist der Name des Dienstes. Dies unterscheidet sich vom Containernamen, der zum Anzeigen von Protokollen in Docker verwendet wird. $ sudo docker-compose logs -f --tail=10 wordpress 
$ sudo docker-compose logs -f --tail=10 db

Verwenden Sie den Host Nginx, um Docker WordPress umzukehren

Die Konfigurationsdatei von nginx lautet wie folgt (irrelevanter Inhalt weggelassen)

Benutzer root; # Dies liegt daran, dass der WordPress-Dateibenutzer im Docker-Container www-data ist.

Server {
 hören Sie 80;
 Servername *.amoyiki.com;
 gibt 301 https://$host$request_uri zurück;                
}
Upstream WordPress-Arbeitspferd {
 Server 127.0.0.1:8000 Fehlerzeitüberschreitung = 10 s;
}
Server { 
 Servername blog.amoyiki.com;
 hören Sie 443 SSL;
 SSL aktiviert;
 ssl_zertifikat /ssl/pfad/fullchain.pem;
 ssl_zertifikatsschlüssel /ssl/pfad/privkey.pem;
 Zugriffsprotokoll /var/log/nginx/access.log Haupt;
 # Speicherort des WordPress-Datenträgers im Host-Stammverzeichnis /var/lib/docker/volumes/blog_wp_site/_data;


 Standort / {
  Proxy-Passwort http://wordpress-workhorse;
  Proxy_Set_Header Host $host;
  Proxy_Set_Header X-Real-IP $Remote_Addr;
  proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  Proxy_set_header X-Forwarded-Proto https;
 }
 
 Standort ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
  läuft am 7. Tag ab;
  Zugriff_Abmeldung;             
 }

 Fehlerseite 500 502 503 504 /50x.html;
 Standort = /50x.html {
  Stamm-HTML;
 }
} 

Fehlersammlung

nginx-Fehler: Berechtigung verweigert

"/var/lib/docker/volumes/myblog_wp_site/_data/wp-includes/css/dashicons.min.css" ist fehlgeschlagen (13: Berechtigung verweigert)

Zuvor verwendete mein nginx.conf-Benutzer den Standard-Nobody, der die Benutzergruppendaten von www-data in wp im Docker nicht lesen konnte. Daher habe ich den nginx-Benutzer direkt zum Root befördert, was später optimiert werden kann.

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:
  • In sechs Schritten lernen Sie, von Grund auf ein persönliches Blog auf WordPress-Basis zu erstellen.
  • Detaillierte Erklärung des gesamten Prozesses zum Erstellen eines persönlichen Blogs mit nginx+WordPress
  • Detaillierte Erläuterung der WordPress-Multisite-Konfiguration in der Nginx-Umgebung
  • Beispiel zum Festlegen der pseudostatischen WordPress-Eigenschaft in Nginx
  • So konfigurieren Sie WordPress mit Nginx
  • Detailliertes grafisches Tutorial zur Lösung des Problems des langsamen Zugriffs auf die WordPress-Website

<<:  So verwenden Sie die Typerweiterung ohne Typingscript

>>:  mysql 5.7.11 winx64 anfängliche Passwortänderung

Artikel empfehlen

Konfigurieren Sie die Java-Entwicklungsumgebung in Ubuntu 20.04 LTS

Laden Sie das Java Development Kit jdk herunter D...

Teilen Sie 101 MySQL-Debugging- und Optimierungstipps

MySQL ist eine leistungsstarke Open-Source-Datenb...

So aktualisieren Sie die Ansicht synchron nach Datenänderungen in Vue

Vorwort Vor kurzem bin ich auf ein interessantes ...

Beispielcode zum Erstellen eines Admin-Dashboard-Layouts mit CSS und JavaScript

Was Sie erstellen werden In diesem neuen Tutorial...

Detaillierte Erklärung der Funktionsweise von Nginx

So funktioniert Nginx Nginx besteht aus einem Ker...

Was sind MySQL-Dirty-Pages?

Inhaltsverzeichnis Schmutzige Seiten (Speichersei...

CentOS 8 Installationshandbuch für Zabbix 4.4

Zabbix-Serverumgebungsplattform ZABBIX Version 4....

Tutorial zur Installation von MYSQL5.7 aus dem OEL7.6-Quellcode

Laden Sie zunächst das Installationspaket von der...

Anwendungsbeispiele für die MySQL-Volltextsuche

Inhaltsverzeichnis 1. Umweltvorbereitung 2. Daten...

So analysieren Sie die Leistung von MySQL-Abfragen

Inhaltsverzeichnis Grundlagen langsamer Abfragen:...

Nginx Reverse Proxy Springboot JAR-Paket-Prozessanalyse

Die übliche Methode zum Bereitstellen eines Sprin...