Support » Plugins » Plugin für Testseiten – Migration

  • Hallo,

    bei jedem Projekt nutze ich bisher eine gespiegelte Version (1:1 Kopie) der Live-Seite um neue Funktionen und Plugins zu testen. Leider ist das manuelle hin und her geschiebe der Einstellungen und Daten auf dauer sehr mühselig.

    Aus diesem Grund habe ich mich gefragt ob es ein Plugin gibt, welches dort sicher von einer zur anderen Seite den aktuellen Stand übernehmen kann.
    Ich möchte weiterhin unterschiedliche Datenbanken und Installationsordner nutzen, es sollten also lediglich die wp-config und die „blogurl“ in der Datenbank-Tabelle „wp_options“ bestehen bleiben, der Rest sollte nach Möglichkeit mit einem Klick von der jeweils anderen Seite kopierbar sein.

    Gibt es solche Plugins welche ihr empfehlen könnt?
    Vielen Dank im Voraus!

Ansicht von 7 Antworten - 1 bis 7 (von insgesamt 7)
  • Das lässt sich so pauschal kaum beantworten, weil eine Lösung von ganz vielen individuellen Faktoren abhängt: Wie wurde die Staging-Umgebung aufgesetzt (Docker, VVV, Flywheel/MAMP/Bitnami)? Ist auf dem produktiven Server SSH-Zugang möglich? Wieviel Personen arbeiten an der Website? Wie häufig wird deployed (und lohnt sich der Aufwand für eine Automatisierung)?

    Als Plugins kommen wohl öfters Duplicator oder MigrateDB zum Einsatz, aber ich würde eher auf den Kommandozeilen-Interpreter WP-CLI setzen, der auch in Skripten eingesetzt werden kann. Über eine Shell-Skript mit rsync solltest du recht einfach eine Synchronisierung der Dateien umsetzen können, während die Datenbank-Operationen mit WP-CLI (und ggf. MigrateDB) durchgeführt werden können. Damit du die wp-config.php nicht dauernd umschreiben musst, kannst du auch eine wp-config.php mit lokalen Zugangsdaten anlegen (hier ein Beispiel).

    Ein interessanter Ansatz ist die Nutzung von Git: Änderungen lokal durchführen, per Git-Commit auf den Git-Server übertragen, der dann per Cron-Job vom Zielserver in regelmäßigen Zeitintervallen abgerufen wird.

    Wenn das noch nicht komplex genug ist, schau dir auch mal die Lösung von 10up zum Deployement mit Docker an: https://10up.github.io/wp-local-docker-docs/

    Thread-Starter firehold

    (@firehold)

    Wenn das noch nicht komplex genug ist, […]

    Wow, danke für die Ausführliche Erklärung.
    Hatte da auf etwas einfacheres gehofft, was ich bei meinen verschiedenen Projekten umsetzten kann.

    Als Staging nutze ich meist einfach einen weiteren Unterordner mit Eigener DB auf dem Hoster des Kunden. Per Subdomain verlinke ich dann zu dieser Seite.

    Im Grunde stellte ich mir das ein wenig einfacher vor. Also ein Plugin welches es ermöglicht die zwei websites miteinander zu verknüpfen (domains und ftp-daten des jeweils anderen bei setup speichert) und auf Knopfdruck dann Dateien und Datenbankeinträge, welche geändert oder hinzugefügt wurden hinzufügt oder überschreibt und dabei bestimmte Einträge ausschließt.

    Rein vom technisch programmierbaren stelle ich mir das nicht unheimlich komplex vor, jedoch sehr zeitaufwendig. Ich dachte bevor ich anfange viel Zeit in eigene Lösungen zu investieren schau ich mal ob eventuell schon jemand diesen Weg beschritten ist.
    Sieht wohl nicht so aus.

    Ich hab schon oft mit EntwicklerInnen über Staging & Deployment gesprochen und alle haben da scheinbar ihre eigene Lösung, die mehr oder weniger komplex ausfällt. Ein Ansatz mit Docker ist interessant, wenn du mit mehreren an einer Website arbeitest und identische Arbeitsumgebungen schaffen möchtest. Zusammen mit GitHub ist das für eine Zusammenarbeit eine tolle Lösung – mir war das persönlich zu komplex, wobei ich auch andere Anforderungen habe und nur für mich eine Arbeitsumgebung schaffen möchte. Arbeiten auf dem Server kann sicher schick sein, wenn du dort SSH-Zugriff hast, Git nutzen kannst (Entwicklung ohne Git geht eigentlich gar nicht mehr) und z.B. mit Visual Code Studio per SSH auf die Dateien zugreifen kannst.

    Du siehst, dass da sehr schnell verschiedene Aspekte zusammenkommen, die eine Universallösung erschweren. Hier im Anwendungs-Support wirst du kaum weiterreichende Tipps bekommen, alleine schon weil sich hier nicht so viele aktiv beteiligen, wie du vielleicht schon gemerkt hast.

    Allgemein würde ich empfehlen, dass du dich mit WP-CLI vertraut machst. Das fördert die Produktivität ungemein.

    Hallo,
    das was @pixolin zu WP-CLI geschrieben hat, kann ich bestätigen. Ich bin ein absoluter Fan von Laragon als lokale Entwicklungsumgebung und habe mir da genau für diesen Zweck mehrere WordPress-Instanzen eingerichtet.
    Ich habe mir z. B. ein Script für WP-CLI erstellt, dass dafür sorgt, dass in allen Instanzen automatisch alle Plugins und Themes aktualisiert werden. Einfacher geht es gar nicht. In der Tat: WP-CLI ist eine tolle Sache.
    Viele Grüße
    Hans-Gerd

    Thread-Starter firehold

    (@firehold)

    Vielen Dank für eure Antworten.

    Ich arbeite bei fast allen Projekten (bisher) alleine, brauche da also erstmal keine team-features.

    Fast alle Projekte an denen ich bisher arbeitete hatten einen einfachen Webspace bei einem Hoster mit MySQL-Anbindung, das hat bisher für die normalen Projekte immer ausgereicht.

    Meinst du SSH als Möglichkeit SFTP zu nutzen um die Sicherheit zu erhöhen oder wofür am besten noch SSH? Denn mit Editoren wie Notepad++ kann ich ja auch mit einem entprechenden Plugin problemlos auf FTP oder SFTP Server zugreifen.

    WP-CLI schaue ich mir auf jedenfall mal an. Weiß halt nicht ob das bei jedem Kunden umsetzbar ist. Git macht natürlich Sinn zur Versionskontrolle und somit mehr Sicherheit vor Fehlern.

    In Verbindung mit Git wäre vielleicht auch ein Plugin denkbar, welches den Inhalt des Gits auf Befehl das eigenen Datei und Datenbankverzeichnis damit zu überschreiben mit den Ausnahmen wp-config und wp_options siteurl.

    • Diese Antwort wurde geändert vor 2 Jahre, 6 Monaten von firehold.

    SSH ist die Secure Shell – eine verschlüsselte Terminalverbindung, über die du Linux-Befehle eingibst. Ich kann nicht beurteilen, wie weit du dich mit Linux-Befehlen auskennst (SSH ist eigentlich auch Grundwissen), aber es ist ausgesprochen hilfreich, dass du zumindest einige Basics lernst, wenn du effizient arbeiten möchtest. WP-CLI stellt dir Befehle zur Verfügung, mit denen du WordPress installieren, ein Child-Theme oder ein neues Plugin erstellen, in der Datenbank Ersetzungen vornehmen, Plugins und Themes installieren, aktivieren, aktualisieren und auch wieder entfernen kannst und vieles mehr.

    Wenn du mit einer lokalen Testumgebung arbeitest, kannst du damit in wenigen Minuten eine neue WordPress-Installation aufsetzen und nach deinen Wünschen einrichten. Das ist selbst dann eine Arbeitserleichterung, wenn der Webhoster deines Kunden keinen Zugriff per SSH anbietet.

    In Verbindung mit Git wäre vielleicht auch ein Plugin denkbar, welches den Inhalt des Gits auf Befehl das eigenen Datei und Datenbankverzeichnis damit zu überschreiben mit den Ausnahmen wp-config und wp_options siteurl.

    Dafür brauchst du kein Plugin. In einer .gitignore-Datei kannst du angeben, was in deinem Git-Repository enthalten sein soll und es gibt (hast du dir das angeschaut?) auch die Möglichkeit, in der wp-config.php unterschiedliche Einstellungen für deine lokale bzw. Staging-Installation und deine produktive Website vorzunehmen. Die Site-URL müsstest du nicht nur in der wp_options-Tabelle ersetzen, weil WordPress an verschiedenen Stellen aus nachvollziehbaren Gründen absolute URLs nutzt. Das ist aber mit WP-CLI auch nicht mehr als eine einzelne Befehlszeile. Die Frage ist also nicht, was möglich ist, sondern ob du den Aufwand für die Automatisierung eingehen willst.

    @firehold Vielleicht ist das ja was brauchbares für dich?

    https://de.wordpress.org/plugins/wp-staging/

Ansicht von 7 Antworten - 1 bis 7 (von insgesamt 7)
  • Das Thema „Plugin für Testseiten – Migration“ ist für neue Antworten geschlossen.