Kategorien
WordPress

WP-CLI für MAMP einrichten

Vielleicht mache ich mich jetzt unbeliebt, aber ich nutze als Tool für lokale Entwicklungsumgebungen seit vielen Jahren MAMP. Ich weiß, das ist nicht der neueste heiße Scheiß, aber für mich funktioniert es einfach gut. Ich nutze die Pro-Version und kann mir da beliebig viele eigene Hostnamen erstellen, um die Projekte lokal auch einfach differenzieren zu können.

Mit der Version 5 haben die Macher von MAMP einige WordPress-spezifische Features eingebaut, die ich aber allesamt nicht nutze. Trotzdem mag ich die Oberfläche, auf der ich mit ein paar Klicks verschiedene serverseitige Einstellungen vornehmen kann. Sorry, ich bin eine faule Entwicklerin. 🤷🏻‍♀️

Ich nutze aber auch sehr gerne die WP-CLI, da sich darüber manche Dinge einfacher lösen lassen als über das WordPress Backend. Mein absoluter Favorit ist search-replace: endlich unkompliziert einen String finden und ersetzen, auch in serialisierten Daten. Mal eben die URL ändern? Grad mal ein Befehl auf der Kommandozeile! 😍

Aber: WP-CLI und MAMP funktionieren nicht auf Anhieb zusammen. Das merkt man nach vielen Jahren erstmal wieder, wenn man sich einen neuen Rechner gönnt und kein Backup einspielt, sondern einmal neu alles aufsetzt. Dann erinnert man sich nur noch dunkel an so ein paar Einstellungen, die man mal vor vielen Jahren gemacht hat.

Aber es sind tatsächlich nur zwei Sachen, die man in eine Datei schreiben muss, damit MAMP und WP-CLI wunderbar zusammen funktionieren. In welche Datei, das hängt vom macOS ab: bis Mojave wurde standardmäßig die bash-Shell genutzt. Seit Catalina ist die zsh-Shell im Einsatz. Das ist aber nicht weiter tragisch, denn eigentlich ändert sich nur der entsprechende Dateiname: Für bash die .bash_profile, für zsh die .zsh_profile.

Falls die Datei nicht vorhanden sein sollte, einfach neu anlegen, z. B. mit touch .zsh_profile. Weil ich die Kommandozeile mag nutze ich auch ganz gerne den vi-Editor und ja, ich weiß wie man da wieder rauskommt! 😛

Wenn die Datei bereits existiert oder neu angelegt wurde, muss folgendes eingetragen werden:

# Use MAMP version of PHP
PHP_VERSION=`ls /Applications/MAMP/bin/php/ | sort -n | tail -1`
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH

Das sieht jetzt etwas kryptisch aus, ist aber eigentlich relativ einfach erklärt. Bei MAMP Pro ist es möglich, verschiedene PHP-Versionen installieren zu können. Diese können pro Host individuell eingestellt werden. Bei einem kann also PHP 5.6 laufen, beim anderen Host PHP 7.4. Man kann auch ganz einfach die PHP-Version wechseln. Für die Shell muss man sich aber auf eine PHP-Version festlegen.

Mit dem obigen Snippet ist es möglich, dass immer die aktuellste PHP-Version genutzt wird, die über MAMP installiert ist. Die erste Zeile holt sich alle vorhandenen Versionen und schreibt die mit der höchsten Versionsnummer in die Variable. In der zweiten Zeile steht dann der eigentliche Befehl, der die Variable nutzt. So brauche ich beim Update von MAMP nicht nochmal an diese Zeile ran und nutze immer die aktuellste PHP-Version.

Der zweite Teil verknüpft das MySQL:

# Use MySQL of MAMP
export PATH=$PATH:/Applications/MAMP/Library/bin/

Ohne diese Zeile gibt es Probleme bei der Verbindung zur Datenbank, die sich z. B. in Fehlermeldungen wie bash: mysql: command not found äußert.

Dann die Datei speichern und noch folgenden Befehl auf der Kommandozeile ausführen:

source ~/.bash_profile

Oder entsprechend .zsh_profile. Das lädt die geänderte Datei einmal neu in die Shell und stellt die Änderungen zur Verfügung. Jetzt kann es mit der Nutzung von WP-CLI mit MAMP losgehen!

Eine Antwort auf „WP-CLI für MAMP einrichten“

Liebe Jessica,
Danke, danke, danke!! Ich bin ein WP-CLI Jungfrau, und Du hast mir mit diesem Artikel gerade die Woche gerettet!
Glückliche Grüße aus Mönchengladbach,
Anne-Mieke

PS Ich habe zum ersten Mal seit Jahren wieder MAMP Pro (Mac Version) installiert, bin bei Version 6.3 und ich finde es absolut Hammer!! Nix mehr stäubig! 🙂

Schreibe einen Kommentar

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