Hier zeige ich euch, wie ihr mehrere Instanzen von WordPress auf eurem Server betreiben könnt. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.

Wer Traefik noch nicht installiert hat, findet hier eine Anleitung, wie ihr dies schnell tun könnt.

Als Grundlage meiner Anleitung dient die Anleitung zur Installation von WordPress.

1. Verzeichnisse erstellen

Zuerst erstellen wir uns die Verzeichnisse für zwei Webseiten. Dies könnt ihr natürlich für beliebig viele machen.

mkdir -p /opt/containers/seite1/{database,app}
mkdir -p /opt/containers/seite2/{database,app}

2. Docker Compose anlegen

Anschließend legen wir für beide Seiten ein Docker File an.

Bei dieser Anleitung haben wir später insgesamt 4 Container. 2 für WordPress und 2 Datenbanken.

Diese Docker Compose Datei funktioniert nur, wenn ich euch mittels meiner Anleitung hier Traefik installiert habt. Sonst heißen einige Traefik Variablen wohl anders. Diese müsst ihr dann dementsprechend bei euch anpassen.

2.1 Seite 1 anlegen

cd /opt/containers/seite1/
nano docker-compose.yml
version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: unless-stopped
    environment:
      WORDPRESS_DB_HOST: wordpress-db
      WORDPRESS_DB_USER: exampleuser    ## Hier Benutzer eingeben ##
      WORDPRESS_DB_PASSWORD: examplepass ## Hier Passwort eingeben ##
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - /opt/containers/seite1/app:/var/www/html
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wordpress-1.entrypoints=http"
      - "traefik.http.routers.wordpress-1.rule=Host(`seite1.euredomain.de`)"  ## Hier eure Domain eingeben ##
      - "traefik.http.middlewares.wordpress-1-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.wordpress-1.middlewares=wordpress-1-https-redirect"
      - "traefik.http.routers.wordpress-1-secure.entrypoints=https"
      - "traefik.http.routers.wordpress-1-secure.rule=Host(`seite1.euredomain.de`)" ## Hier eure Domain eingeben ##
      - "traefik.http.routers.wordpress-1-secure.tls=true"
      - "traefik.http.routers.wordpress-1-secure.tls.certresolver=http"
      - "traefik.http.routers.wordpress-1-secure.service=wordpress-1"
      - "traefik.http.services.wordpress-1.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"

    networks:
      - proxy
      - default

  wordpress-db:
    image: mysql:5.7
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: exampleuser     ## Hier selben Benutzer eingeben ##
      MYSQL_PASSWORD: examplepass ## Hier selbes Passwort eingeben ##
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - /opt/containers/seite1/database:/var/lib/mysql
    networks:
      - default

networks:
  proxy:
    external: true

Notwendige Anpassungen:

  1. MySQL Passwort ändern
  2. MySQL User ändern
  3. 2x eure Domain bei Traefik anpassen (seite1.euredomain.de“)

2.2 Seite 2 anlegen

cd /opt/containers/seite2/
nano docker-compose.yml
version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: unless-stopped
    environment:
      WORDPRESS_DB_HOST: wordpress-db
      WORDPRESS_DB_USER: exampleuser    ## Hier Benutzer eingeben ##
      WORDPRESS_DB_PASSWORD: examplepass ## Hier Passwort eingeben ##
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - /opt/containers/seite2/app:/var/www/html
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wordpress-2.entrypoints=http"
      - "traefik.http.routers.wordpress-2.rule=Host(`seite2.euredomain.de`)"  ## Hier eure Domain eingeben ##
      - "traefik.http.middlewares.wordpress-2-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.wordpress-2.middlewares=wordpress-2-https-redirect"
      - "traefik.http.routers.wordpress-2-secure.entrypoints=https"
      - "traefik.http.routers.wordpress-2-secure.rule=Host(`seite2.euredomain.de`)" ## Hier eure Domain eingeben ##
      - "traefik.http.routers.wordpress-2-secure.tls=true"
      - "traefik.http.routers.wordpress-2-secure.tls.certresolver=http"
      - "traefik.http.routers.wordpress-2-secure.service=wordpress-2"
      - "traefik.http.services.wordpress-2.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"

    networks:
      - proxy
      - default

  wordpress-db:
    image: mysql:5.7
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: exampleuser     ## Hier selben Benutzer eingeben ##
      MYSQL_PASSWORD: examplepass ## Hier selbes Passwort eingeben ##
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - /opt/containers/seite2/database:/var/lib/mysql
    networks:
      - default

networks:
  proxy:
    external: true

Notwendige Anpassungen:

  1. MySQL Passwort ändern
  2. MySQL User ändern
  3. 2x eure Domain bei Traefik anpassen (seite2.euredomain.de“)

3. WordPress Instanzen starten

WordPress startet ihr wie gewohnt mit folgendem Befehl:

docker-compose -f /opt/containers/seite1/docker-compose.yml up -d
docker-compose -f /opt/containers/seite2/docker-compose.yml up -d

Teile diesen Beitrag
Christian

Categories:

2 Kommentare

  1. Hallo Christian,

    da ist noch ein kleiner Fehler in der docker-compose.yml für die zweite WordPress Instanz:

    – „traefik.http.routers.wordpress-2-secure.service=wordpress-2“ und nicht beschrieben – „traefik.http.routers.wordpress-2-secure.service=wordpress-1“

    VG

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.