GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Dockering von Wordpress mit Nginx und PHP-FPM auf Ubuntu 16.04

Docker-Compose ist ein Befehlszeilentool zum Definieren und Verwalten von Docker-Containern mit mehreren Containern, als wären sie ein einziger Dienst. Compose ist in Python geschrieben und kann mit dem Python-Befehl pip installiert werden. Mit compose können wir mehrere Docker-Container mit nur einem einzigen Befehl ausführen. Es ermöglicht Ihnen, einen Container als Dienst zu erstellen, der sich hervorragend für Ihre Entwicklungs-, Test- und Staging-Umgebung eignet.

In diesem Tutorial werde ich Sie Schritt für Schritt durch die Verwendung von docker-compose führen. Wir werden 'Wordpress bereitstellen ' mit Nginx, MySQL und PHP-FPM. Jeder Dienst hat seinen eigenen Container, und wir verwenden Bilder aus der Docker-Hub-Registrierung. Ich zeige Ihnen, wie Sie Container aus Docker-Images erstellen und alle Container mit docker-compose verwalten.

Voraussetzung

  • Ubuntu 16.04
  • Root-Berechtigungen

Schritt 1 – Docker installieren

Wir fangen bei Null an, indem wir Docker und Docker Compose manuell mit dem apt-Befehl installieren.

Bevor wir beginnen, aktualisieren Sie das Ubuntu-Repository und installieren Sie die neuesten Updates:

sudo apt-get update
sudo apt-get upgrade

Docker ist standardmäßig im Ubuntu-Repository verfügbar, sodass wir sofort mit der Installation fortfahren können:

sudo apt-get install -y docker.io

Wenn die Installation abgeschlossen ist, starten Sie Docker und fügen Sie es hinzu, damit es beim Booten automatisch gestartet wird:

systemctl start docker
systemctl enable docker

Testen Sie nun Ihre Docker-Installation mit dem folgenden Befehl:

docker run hello-world

Sie sehen hello-world vom Docker.

Schritt 2 – Docker-Compose installieren

Docker-compose ist ein in Python geschriebenes Skript, das im PyPI-Python-Repository verfügbar ist und mit Python Pip installiert werden kann. Also müssen wir zuerst Python und Python Pip auf unserem System installieren.

Installieren Sie Python und Python-Pip:

sudo apt-get install -y python python-pip

Als nächstes installieren Sie docker-compose mit dem Pip-Befehl:

pip install docker-compose

Warten Sie, bis der Installationsvorgang abgeschlossen ist. Überprüfen Sie dann die Installation mit dem Befehl docker-compose:

docker-compose -v

Sie erhalten die Docker-Compose-Version.

Schritt 3 – Wordpress einrichten

Jetzt sind docker und docker-compose auf dem System installiert. In diesem Schritt zeigen wir Ihnen, wie Sie die Docker-Compose-Umgebung für unser WordPress-Projekt erstellen und einrichten.

Wir werden die PHP-Anwendung „Wordpress“ mit Nginx als Webserver und MariaDB für die MySQL-Datenbank als Docker-Container bereitstellen, die von docker-compose verwaltet werden. Jede Anwendung (Wordpress, Nginx und MySQL) wird in einem eigenen Container ausgeführt, Sie können die folgende Liste sehen:

- Nginx :Wir verwenden das offizielle Docker-Image, neueste Version „nginx:Latest“.

- Wordpress :Wordpress bietet einige Docker-Bilder auf Docker-Hub, und wir werden WordPress 4.7 mit PHP-FPM 7.0 darauf verwenden.

- MySQL :Wir verwenden den offiziellen MariaDB-Container, neueste Version.

Wir brauchen also 3 Docker-Images aus der Docker-Hub-Registrierung.

Wir werden Docker nicht als Root ausführen, wir werden einen normalen Linux-Benutzer verwenden. Erstellen Sie also einfach einen neuen Benutzer mit dem folgenden Befehl (Sie können hier gerne einen anderen Benutzernamen verwenden, stellen Sie nur sicher, dass der Benutzer noch nicht existiert. Wenn Sie einen anderen Namen wählen, stellen Sie sicher, dass Sie ihn in allen folgenden Befehlen in diesem Tutorial ändern):

useradd -m -s /bin/bash hakase
passwd hakase

Fügen Sie nun den Benutzer zum 'Docker hinzu ' Gruppe, damit der Benutzer den Docker-Befehl verwenden und den Docker-Dienst neu starten kann:

usermod -a -G docker hakase
systemctl restart docker

Melden Sie sich beim Benutzer ‚hakase‘ an und erstellen Sie ein neues Verzeichnis für das WordPress-Projekt:

su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/

Erstellen Sie als Nächstes eine neue Datei mit dem Namen „docker-compose.yml“. ', und erstellen Sie ein neues Verzeichnis für das Projekt. Geben Sie einfach die folgenden Befehle ein:

touch docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/

Datei- und Verzeichnisliste des Projekts:

- docker-compose.yml :Dies ist die Docker-Compose-Konfigurationsdatei, Sie müssen sie erstellen, wenn Sie ein neues Docker-Compose-Projekt starten.

- nginx/ :Dieses Verzeichnis wird für unsere zusätzliche nginx-Konfiguration wie den virtuellen Host usw. verwendet.

- db-data/ :Das Volume/Verzeichnis für die Mysql-Daten. Die SQL aus den Daten „/var/lib/mysql“ wird in das Verzeichnis „db-data“ eingebunden.

- Protokolle/ :Verzeichnis für Anwendungsprotokoll, nginx, mariadb und php-fpm.

- wordpress/: Alle WordPress-Dateien sind in diesem Verzeichnis verfügbar.

Erstellen Sie im Verzeichnis „nginx“ eine neue Konfigurationsdatei für unseren virtuellen WordPress-Host.

Erstellen Sie eine neue Datei wordpress.conf:

vim nginx/wordpress.conf

Konfiguration unten einfügen:

server {
    listen 80;
    server_name wp-hakase.co;

    root /var/www/html;
    index index.php;

    access_log /var/log/nginx/hakase-access.log;
    error_log /var/log/nginx/hakase-error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass wordpress:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Speichern Sie die Datei und beenden Sie vim.

Schritt 4 – Docker-Compose konfigurieren

In diesem Schritt beginnen wir mit der Bearbeitung der Datei docker-compose.yml. Wenn Sie das docker-compose-Projekt starten möchten, stellen Sie sicher, dass Sie zuerst die docker-compose.yml-Datei erstellen, wie wir es unten tun.

Docker-compose.yml mit vim bearbeiten:

vim docker-compose.yml

Definieren Sie Ihre Dienste, in der ersten Zeile definieren wir Nginx. Wir verwenden das offizielle Docker-Image von Nginx, die neueste Version, und konfigurieren die Portzuordnung für Port 80 auf dem Container zu Port 80 auf dem Host. Konfigurieren Sie als Nächstes die Docker-Volumes, das Volume für unsere virtuelle Nginx-Hostkonfiguration, das Volume für Nginx-Protokolldateien und das Web-Stammverzeichnis-Volume „/var/www/html“. Der Nginx-Container ist mit dem WordPress-Container verknüpft.

Konfiguration unten einfügen:

nginx:
    image: nginx:latest
    ports:
        - '80:80'
    volumes:
        - ./nginx:/etc/nginx/conf.d
        - ./logs/nginx:/var/log/nginx
        - ./wordpress:/var/www/html
    links:
        - wordpress
    restart: always

Als nächstes definieren Sie den MySQL-Server. Wir verwenden das MariaDB-Image, neueste Version. Konfigurieren Sie die Portzuordnung für den Container auf Port 3306 und konfigurieren Sie das MySQL-Root-Passwort mit der Umgebungsvariablen „MYSQL_ROOT_PASSWORD“. Konfigurieren Sie abschließend das Container-Volume für das MySQL-Datenverzeichnis.

Konfiguration unten einfügen:

mysql:
    image: mariadb
    ports:
        - '3306:3306'
    volumes:
        - ./db-data:/var/lib/mysql
    environment:
        - MYSQL_ROOT_PASSWORD=aqwe123
    restart: always

Anschließend konfigurieren wir den WordPress-Dienst mithilfe des WordPress 4.7-Docker-Images mit installiertem PHP-FPM 7.0. Konfigurieren Sie den Port für PHP-fpm auf Port 9000, aktivieren Sie das Docker-Volume für das Webverzeichnis „/var/www/html“ für das Hostverzeichnis „wordpress“, richten Sie die Datenbank ein, indem Sie die WordPress-Umgebungsvariable definieren, und verknüpfen Sie den WordPress-Dienst mit mysql.

Konfiguration unten einfügen:

wordpress:
    image: wordpress:4.7.1-php7.0-fpm
    ports:
        - '9000:9000'
    volumes:
        - ./wordpress:/var/www/html
    environment:
        - WORDPRESS_DB_NAME=wpdb
        - WORDPRESS_TABLE_PREFIX=wp_
        - WORDPRESS_DB_HOST=mysql
        - WORDPRESS_DB_PASSWORD=aqwe123
    links:
        - mysql
    restart: always

Nachdem Sie die drei Teile in die docker-compose.yml-Datei eingefügt haben, speichern Sie die Datei und beenden Sie den vim-Editor.

Unsere Docker-Compose-Konfiguration ist fertig.

Schritt 5 – Docker-compose ausführen

Beginnen Sie mit dem Erstellen der neuen Container mit docker compose. Gehen Sie in das WordPress-Compose-Verzeichnis und starten Sie die neuen Container basierend auf unserer Compose-Datei.

cd ~/wordpress-compose/
docker-compose up -d

Sie können die Ergebnisse des Befehls sehen. Es wurden drei Container erstellt. Lassen Sie uns den Containerstatus mit der Option ps überprüfen:

docker-compose ps

Unten ist das Ergebnis:

Wenn Sie die Protokollausgabe des Containers sehen möchten, können Sie die folgenden Befehle verwenden:

docker-compose logs nginx
docker-compose logs mysql
docker-compose logs wordpress

Containerprotokolle:

Hinweis :
Wenn Sie im Protokoll des WordPress-Containers einen Fehler bezüglich der abgelehnten MySQL-Verbindung sehen, ignorieren Sie ihn.

Schritt 6 – Wordpress installieren

Bevor wir diesen Schritt ausführen, überprüfen wir die verfügbaren Ports/offenen Ports auf dem System. Stellen Sie sicher, dass Sie 3 Ports geöffnet haben, Port 80, 3306 und Port 9000.

netstat -plntu

Die Ergebnisse sind unten:

Öffnen Sie nun Ihren Webbrowser und geben Sie die Server-URL oder IP-Adresse ein.

http://serverIP/

Sie können die WordPress-Installationsseite sehen. Wählen Sie Ihre Sprache und klicken Sie auf „Weiter“. '.

Geben Sie Ihre Website-Details wie Website-Titel, Admin-Benutzer und Passwort sowie Ihre E-Mail-Adresse ein und klicken Sie dann auf "Wordpress installieren". '.

Sie werden zum 'Wordpress Admin Dashboard weitergeleitet '.

Und das ist mein WordPress-Beispielbeitrag Hallo Welt.

Wordpress wurde mit docker-compose installiert.

Schritt 7 – Zugriff auf den Docker-Container

Dies ist ein zusätzlicher Schritt für den Zugriff auf einen Container mit docker-compose. Überprüfen Sie, ob alle Container verfügbar sind, und zeigen Sie ihren Status an:

docker-compose ps

Wir haben bereits 3 Container, jetzt können wir versuchen, uns bei jedem Container anzumelden. Melden Sie sich mit dem Befehl docker-compose beim ersten Nginx-Container an.

docker-compose exec nginx bash

nginx :Dienstname in der docker-compose-Datei docker-compose.yml

Bash :Führen Sie den Bash-Shell-Befehl aus

Überprüfen Sie jetzt unsere virtuelle WordPress-Host-Konfiguration.

cat /etc/nginx/conf.d/wordpress.conf

Die Dateien sind im Container verfügbar.

Versuchen Sie als Nächstes, sich beim MySQL-Container anzumelden, und melden Sie sich dann mit unserem Kennwort für die Compose-Datei bei der MySQL-Shell an.

docker-compose exec mysql bash
mysql -u root -p
TYPE MYSQL ROOT PASSWORD

Siehe Liste der Datenbanken:

show databases;

Sie sehen unsere WordPress-Datenbank.

Im „Wordpress“-Container sehen Sie alle WordPress-Dateien.

docker-compose exec wordpress bash
ls -lah

Alle Container sind zugänglich.


Ubuntu
  1. Ubuntu 20.04:WordPress mit Nginx-Installation

  2. So installieren Sie WordPress mit Docker auf Ubuntu

  3. Installieren Sie Prosper202 mit Nginx, MySQL und PHP-FPM auf Ubuntu

  4. Installieren Sie WordPress mit Varnish und Nginx auf Ubuntu

  5. Installieren Sie WordPress mit Memcached und Nginx auf Ubuntu

Installieren von Nginx mit PHP5 (und PHP-FPM) und MySQL-Unterstützung (LEMP) unter Ubuntu 12.04 LTS

Installieren von Nginx mit PHP5 (und PHP-FPM) und MySQL-Unterstützung (LEMP) unter Ubuntu 13.04

So installieren Sie Wordpress mit Nginx, MariaDB und HHVM in Ubuntu 15.04

So installieren Sie WordPress 5.x mit Nginx auf Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie WordPress mit Nginx auf Ubuntu

Installieren Sie WordPress mit Nginx auf Ubuntu 18.04