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

Einführung und Verwendung des Javascript-Generators

Was ist ein Generator? Ein Generator ist ein Code...

CSS zum Erzielen eines Animationseffekts der Tik Tok-Abonnementschaltfläche

Ich habe mir vor einiger Zeit Tik Tok angesehen u...

MySQL Online-Übung zur Deadlock-Analyse

Vorwort Ich glaube, dass jeder beim Erlernen von ...

CSS-Implementierungscode für horizontale und vertikale Fortschrittsbalken

Manchmal ist es schön, ein paar nette Scrollbar-E...

Detailliertes Tutorial zur Installation von PHP und Nginx auf Centos7

Da die Anwendung von CentOS auf der Serverseite i...

Der Unterschied und die Verwendung von Datum/Uhrzeit und Zeitstempel in MySQL

1. Wie wird die aktuelle Uhrzeit in MySQL dargest...

vue+el-upload realisiert den dynamischen Upload mehrerer Dateien

vue+el-upload Dynamischer Upload mehrerer Dateien...

Grundsätze und Nutzungsdetails für MySQL 8.0-Benutzer- und Rollenverwaltung

Dieser Artikel beschreibt die Benutzer- und Rolle...

JavaScript implementiert einfache Rechnerfunktion

In diesem Artikel wird der spezifische JavaScript...

Wie kompliziert ist die Priorität von CSS-Stilen?

Gestern Abend habe ich mir eine Interviewfrage ang...

Wie setze ich eine Unterstreichung in HTML? So unterstreiche ich Text in HTML

Früher bestand das Unterstreichen in HTML darin, ...