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

So legen Sie MySQL-Fremdschlüssel für Anfänger fest

Inhaltsverzeichnis Die Rolle von Fremdschlüsseln ...

MYSQL 5.6 Bereitstellung und Überwachung der Slave-Replikation

MYSQL 5.6 Bereitstellung und Überwachung der Slav...

Zusammenfassung der Formulardesigntechniken im Webdesign

„Eingaben sollten in logische Gruppen unterteilt ...

JS implementiert das Schere-Stein-Papier-Spiel

In diesem Artikelbeispiel wird der spezifische JS...

Vue-CLI3.x stellt Projekte automatisch auf dem Server bereit

Inhaltsverzeichnis Vorwort 1. Installieren Sie sc...

Detailliertes Beispiel der Lesegeschwindigkeit von JS-Objekten

1. Der Zugriff auf Literale und lokale Variablen ...

Einige wunderbare Verwendungsmöglichkeiten von URL-Objekten in JavaScript

Inhaltsverzeichnis Vorwort Parameter analysieren ...

So bedienen Sie JSON-Felder in MySQL

MySQL 5.7.8 führte das JSON-Feld ein. Dieser Feld...

Schritte zum Installieren einer RocketMQ-Instanz unter Linux

1. JDK installieren 1.1 Überprüfen Sie, ob die ak...

So ändern Sie die Kodierung in MySQL Version 5.7 unter Windows auf UTF-8

Vorwort Ich habe gerade angefangen, MySQL zu lern...