Heutzutage verlassen sich WordPress-Entwickler/innen auf Git, um die Entwicklung reibungsloser zu gestalten und es mehreren Personen zu ermöglichen, an demselben Projekt zu arbeiten, ohne sich gegenseitig auf die Füße zu treten.

Bitbucket ist eine beliebte Git-Plattform, aber es reicht nicht aus, deinen Code dort abzulegen – du brauchst auch eine Möglichkeit, dieses Repository mit deinem Server zu verbinden. Auf diese Weise können Aktualisierungen, die in Bitbucket veröffentlicht werden, automatisch auf deinen Server übertragen werden, damit deine WordPress-Website immer auf dem neuesten Stand ist, ohne dass manuelle, sich wiederholende Schritte erforderlich sind.

An dieser Stelle kommen Bitbucket Pipelines ins Spiel. Mit Bitbucket Pipelines kannst du einen Workflow für die kontinuierliche Bereitstellung einrichten, so dass Updates in deinem Repository automatisch auf deiner Website bereitgestellt werden. Wenn du Kinsta als Hoster nutzt, kannst du SSH und Bitbucket Pipelines verwenden, um den gesamten Prozess zu vereinfachen.

In diesem Artikel erfährst du, wie du mit Bitbucket Pipelines ein Continuous Deployment für deine auf Kinsta gehostete WordPress-Website einrichtest.

Voraussetzungen

Bevor du das Continuous Deployment für deine WordPress-Website auf Kinsta einrichtest, solltest du Folgendes bereithalten:

  1. Deine WordPress-Website sollte bereits auf Kinsta gehostet sein.
  2. Lokalen Rechnerzugriff auf die Dateien deiner WordPress-Website.
  3. Ein Bitbucket-Konto, in dem du den Code deiner Website speicherst und veröffentlichst.
  4. Grundlegende Vertrautheit mit Git, z. B. wie du Code pushen und mit einer .gitignore Datei arbeiten kannst.

Einrichten deiner WordPress-Website auf Bitbucket

Als Kinsta-Nutzer hast du zwei einfache Möglichkeiten, auf die Dateien deiner WordPress-Website zuzugreifen. Du kannst deine Website entweder vom Kinsta-Server in DevKinsta ziehen, wo du lokal arbeiten kannst, oder du kannst ein herunterladbares Backup direkt von deinem MyKinsta-Dashboard aus erstellen. In diesem Leitfaden werden wir die Backup-Methode verwenden.

Download deiner WordPress-Dateien

Um eine Kopie deiner WordPress-Dateien von Kinsta herunterzuladen, befolge diese Schritte:

  1. Navigiere zu deiner Website im MyKinsta-Dashboard.
  2. Klicke in der linken Seitenleiste auf Backups, um auf die Umgebungssicherungen deiner Website zuzugreifen.
  3. Gehe auf den Reiter Download und erstelle ein herunterladbares Backup.
  4. Sobald der Download fertig ist, speichere ihn auf deinem lokalen PC.

Diese Sicherung ist eine komprimierte Datei. Entpacke sie, um auf alle deine WordPress-Dateien zuzugreifen.

Richte dein Projekt für Git ein und erstelle ein Repository auf Bitbucket

Öffne den Ordner mit den Dateien deiner Website in deinem bevorzugten Code-Editor. Um zu verhindern, dass unnötige WordPress-Kerndateien, Medien-Uploads oder sensible Informationen hochgeladen werden, füge eine .gitignore Datei in das Stammverzeichnis deines Projekts ein.

Du kannst eine Standardvorlage verwenden, ihren Inhalt kopieren und sie speichern, um sicherzustellen, dass nur die wichtigsten Dateien verfolgt werden.

Deine lokalen WordPress-Dateien sind nun für Git vorbereitet. In Bitbucket gehst du zu deinem Arbeitsbereich und erstellst ein neues Repository ohne Dateien. (Füge keine .gitignore Datei ein, da wir bereits eine lokal erstellt haben.)

SSH-Authentifizierung einrichten und zu Bitbucket pushen

Um eine sichere Verbindung zu deinem Bitbucket-Repository herzustellen, musst du die SSH-Authentifizierung einrichten und dann deinen Code pushen.

  1. Erstelle ein SSH-Schlüsselpaar auf deinem lokalen Rechner. Verwende deine eigene E-Mail-Adresse in dem folgenden Befehl:
    ssh-keygen -t ed25519 -C "[email protected]"

    Speichere das Schlüsselpaar an einem Ort, auf den du leicht zugreifen kannst (z.B. ~/.ssh/id_rsa_bitbucket).

  2. Kopiere den öffentlichen Schlüssel (~/.ssh/id_rsa_bitbucket.pub) und füge ihn zu Personal Bitbucket Settings > SSH Keys hinzu. Dadurch wird dein Rechner autorisiert, Code sicher zu pushen.
    SSH-Schlüssel zu Bitbucket hinzufügen
    SSH-Schlüssel zu Bitbucket hinzufügen

  3. Wenn du den SSH-Schlüssel hinzugefügt hast, kannst du mit den folgenden Befehlen deinen Code zu Bitbucket pushen:
    # Initialize a new Git repository
    git init
    # Stage all files for the first commit
    git add .
    # Commit the files with a message
    git commit -m "Initial commit of WordPress site files"
    # Add the Bitbucket repository as the remote origin
    git remote add origin [email protected]:your-username/your-repo.git
    # Push the files to Bitbucket
    git push -u origin main

    Ersetze your-username und your-repo durch deinen Bitbucket-Benutzernamen und den Namen des Repositorys.

Wenn du das getan hast, bist du bei Bitbucket gut aufgehoben. Dann kannst du deinen Kinsta-Server so konfigurieren, dass er Updates von deinem Bitbucket-Repository erhält.

Konfiguriere deinen Kinsta-Server für automatische Bereitstellungen

Um automatisierte Bereitstellungen von Bitbucket aus zu ermöglichen, musst du einen SSH-Zugang zu Bitbucket einrichten und Git so konfigurieren, dass es SSH auf dem Kinsta-Server verwendet.

Schritt 1: SSH-Zugang zu Bitbucket für sichere Verbindungen einrichten

Damit der Kinsta-Server Code aus Bitbucket abrufen kann, musst du einen SSH-Schlüssel auf dem Server erstellen und seinen öffentlichen Schlüssel zu deinem Bitbucket-Konto hinzufügen.

Verbinde dich per SSH mit deinem Kinsta-Server, indem du den SSH-Terminalbefehl in deinem MyKinsta-Dashboard verwendest:

MyKinsta SSH-Terminal-Befehl
MyKinsta SSH-Terminal-Befehl

Erstelle dann einen neuen SSH-Schlüssel (überspringe diesen Schritt, wenn du bereits einen hast):

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Drücke die Eingabetaste, um den Schlüssel am Standardspeicherort zu speichern und lass die Passphrase leer, wenn du dazu aufgefordert wirst.

Erstelle einen öffentlichen SSH-Schlüssel
Erstelle einen öffentlichen SSH-Schlüssel

Als nächstes musst du den öffentlichen Schlüssel zu Bitbucket hinzufügen. Um auf den Schlüssel zuzugreifen, benutze diesen Befehl:

cat ~/.ssh/id_rsa.pub

Kopiere die gesamte Ausgabe, gehe dann zu Bitbucket-Einstellungen > SSH-Schlüssel in deinem Bitbucket-Konto und füge den öffentlichen Schlüssel hinzu. Damit wird der Kinsta-Server autorisiert, sicher auf dein Bitbucket-Repository zuzugreifen.

Schritt 2: Konfiguriere Git für die Verwendung von SSH auf dem Kinsta-Server

Navigiere zum Live-Verzeichnis deiner Website auf dem Kinsta-Server, indem du den folgenden Befehl ausführst:

cd /www/your-site/public

Du findest diesen Pfad in den Umgebungsdetails deines MyKinsta-Site-Dashboards, wie unten dargestellt:

WordPress-Site-Serverpfad
WordPress-Site-Serverpfad

Als Nächstes richtest du das Verzeichnis als Git-Repository ein und legst die Remote-URL für die Verwendung von SSH fest:

git init
git remote add origin [email protected]:your-username/your-repo.git

Ersetze your-username und your-repo durch deinen Bitbucket-Benutzernamen bzw. den Namen des Repositorys.

Bestätige, dass die SSH-Einrichtung funktioniert, indem du sie ausführst:

ssh -T [email protected]

Wenn sie erfolgreich war, solltest du eine Meldung wie die folgende sehen: „Über SSH-Schlüssel authentifiziert“. Du kannst Git verwenden, um dich mit Bitbucket zu verbinden. Der Shell-Zugang ist deaktiviert.

Mit dieser Einrichtung ist dein Kinsta-Server jetzt bereit, Updates von Bitbucket zu empfangen und direkt über Bitbucket-Pipelines zu verteilen.

Bitbucket Pipelines für die automatische Bereitstellung einrichten

Bitbucket Pipelines ist ein Tool zur kontinuierlichen Integration und Bereitstellung (CI/CD), mit dem du Aufgaben automatisieren kannst, wenn du Änderungen an deinem Repository vornimmst. In diesem Setup konfigurieren wir eine Pipeline, die eine Bereitstellung an Kinsta auslöst, sobald ein neuer Push in den Zweig main erfolgt.

Hinzufügen der erforderlichen Umgebungsvariablen

Bevor du die Pipeline konfigurierst, musst du in Bitbucket einige Umgebungsvariablen einrichten, um sensible Informationen sicher zu speichern. Navigiere in Bitbucket zu Repository Settings > Repository Variables und füge die folgenden Variablen mit dem entsprechenden Wert hinzu:

  • KINSTA_USERNAME: Dies ist dein SSH-Benutzername für den Kinsta-Server. Er wird von Bitbucket Pipelines verwendet, um sich anzumelden und Bereitstellungs-Befehle auszuführen.
  • KINSTA_SERVER_IP: Dies ist die IP-Adresse deines Kinsta-Servers. Damit weiß Bitbucket Pipelines, mit welchem Server es sich für die Bereitstellung verbinden muss.
  • PORT: Dies ist der SSH-Port, der von deinem Kinsta-Server verwendet wird. Kinsta-Server verwenden einen benutzerdefinierten Port, daher musst du ihn hier angeben. Du findest diese Angaben auf der Info-Seite deiner Website in deinem MyKinsta-Dashboard.

    MyKinsta STFP/SSH-Details
    MyKinsta STFP/SSH-Details

  • SSH_PRIVATE_KEY: Dies ist dein mit base64 verschlüsselter privater SSH-Schlüssel von deinem lokalen Rechner. Bitbucket Pipelines verwendet diesen Schlüssel, um sich bei deinem Kinsta-Server zu authentifizieren. Um deinen privaten Schlüssel in base64 zu kodieren, führe aus:
    cat ~/.ssh/id_rsa | base64

    Kopiere die Ausgabe und füge sie als Wert für SSH_PRIVATE_KEY hinzu.

Bitbucket Pipeline Konfiguration

Jetzt schreiben wir die Konfigurationsdatei bitbucket-pipelines.yml, um die Bereitstellung zu automatisieren. In dieser Datei wird die Pipeline definiert und festgelegt, wann sie ausgeführt werden soll, welche Befehle sie ausführen soll und wie sie sich mit deinem Kinsta-Server verbindet. Du kannst dies lokal in deiner IDE tun.

Hier ist die vollständige Konfiguration:

pipelines:
  branches:
    main:
      - step:
          name: Deploy to Kinsta
          script:
            - pipe: atlassian/ssh-run:0.8.1
              variables:
                SSH_USER: $KINSTA_USERNAME
                SERVER: $KINSTA_SERVER_IP
                PORT: $PORT
                COMMAND: |
                  cd /www/your-site/public &&
                  git fetch origin main &&
                  git reset --hard origin/main
                SSH_KEY: $SSH_PRIVATE_KEY
                DEBUG: 'true'

Ein genauerer Blick auf diese Pipeline-Konfiguration

Diese Pipeline ist so eingerichtet, dass sie die Bereitstellung auf deinem Kinsta-Server automatisiert, sobald es einen neuen Push für den main Branch gibt. Hier ist eine Aufschlüsselung, was die einzelnen Teile tun:

  • Pipeline-Auslöser: Der Abschnitt pipelines ist so konfiguriert, dass er bei einem Push in den Zweig main ausgelöst wird. Das bedeutet, dass jeder neue Commit an main automatisch die Bereitstellung startet.
  • Schritt: Der Schritt wird der Übersichtlichkeit halber „Deploy to Kinsta“ genannt. Dieser Schritt enthält die wichtigsten Aktionen für die Bereitstellung.
  • SSH-Run-Pipe: Wir verwenden die atlassian/ssh-run Pipe, die es Bitbucket ermöglicht, sich über SSH mit deinem Kinsta-Server zu verbinden und Befehle aus der Ferne auszuführen. Diese Pipe vereinfacht das Einrichten einer SSH-Sitzung, das Ausführen der Befehle und das Schließen der Sitzung, sodass du die SSH-Details nicht manuell im Skript verwalten musst.
  • Bereitstellungsbefehle: Der Block COMMAND enthält die Befehle, mit denen der neueste Code auf deiner WordPress-Website bereitgestellt wird. Jeder Befehl hat folgende Funktion:
    • Der erste Befehl navigiert zu dem Live-Verzeichnis, in dem WordPress gehostet wird.
    • Der zweite Befehl führt git fetch origin main aus, um den neuesten Code aus dem Hauptzweig in Bitbucket zu ziehen.
    • Der letzte Befehl aktualisiert dann die Live-Site mit dem neuesten Code aus dem Hauptzweig.

Diese Konfiguration kümmert sich um alle Aspekte der Bereitstellung – von der Verbindung zu Kinsta bis zur Aktualisierung deiner Website-Dateien – so dass deine WordPress-Website auf Kinsta bei jedem Push an main automatisch auf dem neuesten Stand bleibt.

Teste die Pipeline

Speichere die Datei bitbucket-pipelines.yml im Hauptverzeichnis deines Repositorys und übertrage die Änderungen. Wenn du sie in den Zweig main pushst, wird die Pipeline automatisch ausgelöst und der Bereitstellungsprozess beginnt.

Du kannst den Fortschritt der Bereitstellung im Bitbucket Pipelines Dashboard überwachen. Wenn alles richtig eingerichtet ist, verbindet sich Bitbucket mit deinem Kinsta-Server, holt sich den neuesten Code und stellt ihn auf deiner Live-Site bereit.

Bitbucket Pipelines Logs
Bitbucket Pipelines Logs

Zur Fehlersuche solltest du die Pipeline-Protokolle in Bitbucket überprüfen, vor allem wenn DEBUG auf "true" eingestellt ist. Die Protokolle enthalten detaillierte Informationen über jeden Schritt, die dir helfen können, Verbindungs- oder Konfigurationsprobleme zu erkennen.

Zusammenfassung

Die Einrichtung automatischer Bereitstellungen von Bitbucket zu Kinsta ist eine leistungsstarke Methode, um deine WordPress-Website auf dem neuesten Stand zu halten, ohne dass du die Updates manuell durchführen musst. Nachdem du Bitbucket Pipelines und deinen Kinsta-Server miteinander verbunden hast, wird jeder Push für dein Repository sofort auf deiner Live-Site angezeigt, wodurch Ausfallzeiten minimiert und Fehler bei der Bereitstellung reduziert werden.

Vergiss nicht, dass DevKinsta eine einfachere Option für Solo-Entwickler bietet. Mit DevKinsta kannst du deine lokale Entwicklungsumgebung mit einem einzigen Klick direkt auf Kinsta pushen, ohne dass du eine Pipeline einrichten musst. Ein zusätzlicher Vorteil dieses Ansatzes ist, dass auch deine Datenbankänderungen mit einbezogen werden können, so dass sowohl dein Code als auch dein Inhalt mühelos synchronisiert werden.

Was hältst du von diesem Verfahren? Hast du Fragen oder bist du auf ein Problem gestoßen? Teile dein Feedback mit oder stelle deine Fragen in den Kommentaren unten!

Joel Olawanle Kinsta

Joel ist Frontend-Entwickler und arbeitet bei Kinsta als Technical Editor. Er ist ein leidenschaftlicher Lehrer mit einer Vorliebe für Open Source und hat über 200 technische Artikel geschrieben, die sich hauptsächlich um JavaScript und seine Frameworks drehen.