WP CLI mit Multisite Migration Erweiterung auf All-inkl.com installieren

Was ist WP-CLI und was macht es so wertvoll?

Die Skriptbibliothek WP CLI ist eines der Werkzeuge, die man als WordPress Administrator nicht mehr missen möchte. Dieses Tool arbeitet auf Serverebene und hat alles dabei, was man für die Pflege und Wartung einer WordPress Webseite benötigt. Man kann Plugins oder Themes installieren/aktivieren/deaktivieren/löschen/updaten, neue WordPress Systeme aufsetzen, Nutzer verwalten und so vieles mehr.
Aber dafür muss man es erst einmal installieren, was bei den meisten shared webhosting Paketen ausgeschlossen sein dürfte. Sehr oft fehlt es am SSH Zugang oder der Hoster schränkt die Befehlssätze auf der Kommandozeilenebene stark ein. Mittlerweile habe ich WP-ClI bei den Webhostern all-inkl.com und domainfactory zum Laufen bekommen und beschreibe euch hier die Vorgehensweise.

WP-CLI installieren

Die Installation via Kommandozeile ist fast immer gleich. Man wählt sich mit seinen SSH Zugangsdaten ein, landet für gewöhnlich im Root-Verzeichnis seines Webaccounts und:

Erstellt erstmal ein eigenes Verzeichnis für WP-CLI:

mkdir wp-cli

Lädt dann das Installationspaket herunter (domainfactory-Style):

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Von all-inkl empfohlene Variante:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Vergibt die nötigen Rechte zur Ausführung der Datei:

chmod u+x wp-cli.phar

Und dann noch eine allgemeingültige Verlinkung erstellen. Entweder es existiert bereits eine .bashrc Datei im Root-Verzeichnis des Webhostingbereiches oder ihr müsst sie anlegen. Jedenfalls muss da folgendes eingetragen werden:

bei Domainfactory:

alias wp='/usr/local/bin/php7-73LATEST-CLI /kunden/xxxxx_xxxxx/wp-cli.phar'

xxxxx_xxxxx ersetzt ihr durch eure Kunden-ID.

bei All-inkl.com wird mit einer .user_bashrc gearbeitet:

echo "alias wp='/www/htdocs/w0123456/wp-cli/wp-cli.phar'" >> /www/htdocs/w0123456/.user_bashrc

w0123456 müsst ihr durch eure Benutzer-ID ersetzen. Danach wird die Bash komplett neu gestartet, damit die Verlinkung wirksam ist:

source /.bashrc

WP-CLI um das Multisite Migration Package erweitern

WordPress Multisites ist ein spezielles Feature von WordPress, dass eine Mandantenfähigkeit ermöglicht. Das „Basis“ WP CLI ist – aus welchem Grund auch immer – darauf nicht vorbereitet. Es lassen sich keine Ex- und Import-Arbeiten durchführen. Dafür gibt es eben das MU-Migration Package, mit dem man bspw. eine externe Single Installation in eine Multisite integrieren kann oder aus einer Subsite eine Single Installation machen kann. Großes Tennis also.

Beim Webhoster meines Vertrauens ALL-INKL klappt das aber, wenn man einen Tarif ab Private Plus sein Eigen nennt (erst dann ist ein SSH Zugang enthalten). Wie ihr euch dort einen SSH Zugang anlegt und mit dem arbeitet, ist in den FAQ von AI recht gut beschrieben. Sogar die kinderleichte WP CLI Installation ist dort aufgeführt und läuft wie am Schnürchen durch. Wo ich allerdings ins Stocken geraten bin ist die zusätzliche Installation des Multisite Migration Packages.

Jedenfalls brach der Versuch der Installation des MU-Migration Packages bei mir immer mit einer „Allowed memory size exhausted …tried to allocate“ Fehlermeldung ab. Der Arbeitsspeicher lief über und die Installation schlug fehl. Nach Rücksprache mit dem AI Support habe ich versucht, über die .htaccess das Memory Limit anzuheben. Die php.ini hat bei AI anscheinend keine Auswirkung. Aber auch die .htaccess mit 512 Megabyte erlaubtem Arbeitsspeicher griff aus welchen Gründen auch immer nicht. Mehr als 512 Megabyte werden vom System ohnehin nicht akzeptiert, es hätte mir also nichts gebracht, wenn ich da 1 Gigabyte oder 2 Gigabyte eingetragen hätte. Wie auch immer, durch Googlen fand ich die Lösung. Der folgende Aufruf setzt das memory_limit temporär außer Kraft und das reicht aus, um die benötigte Erweiterung zu installieren:

Wechselt in der Kommandozeile in das wp-cli Verzeichnis.

Dann gebt folgende Anweisung ein:

php -d memory_limit=-1 wp-cli.phar package install 10up/mu-migration

Für den Zugriff auf die Kommandozeile vertraue ich seit Jahren auf den PuTTY SSH Client. Man kann sich dort Profile für jeden Server einrichten und muss dann nur noch das Passwort eingeben.

WP CLI mit PuTTY
WP CLI mit PuTTY

Schreibe einen Kommentar

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