MAMP automatisch beim Login starten

Wer auf dem Mac entwickelt kommt an MAMP, dem De-facto-Standard für lokale Web-Entwicklung, nicht vorbei. Umso nerviger ist es, das Programm im Autostart zu haben, oder es manuell starten zu müssen, nur um Apache bzw. nginx und MySQL zu starten. Mit diesem kleinen Trick könnt ihr euch das künftig sparen.

Vorbereitung

Ihr benötigt:

  • Solide Kenntnisse im Umgang mit der Kommandozeile
  • Einen Texteditor, z. B. AtomCoda oder TextMate
  • Eine funktionierende MAMP-Installation

Start-Skript von MAMP korrigieren

Bevor wir beginnen müssen wir zunächst das Start-Skript von MAMP korrigieren, denn es beinhaltet einen Fehler bei der Deklaration der Shebang (Magic Line). Dieser Fehler führt dazu, dass der später angelegte LaunchAgent nicht funktioniert. Öffnet die Datei /Applications/MAMP/bin/start.sh in einem Texteditor und korrigiert sie wie unten angegeben (Zeile 1). Speichert die Datei danach ab.

#!/bin/sh
/Applications/MAMP/bin/startMysql.sh
/Applications/MAMP/bin/startApache.sh

LaunchAgent anlegen

Bei einem LaunchAgent handelt es sich um eine Property List, die vom launchd-Framework eingelesen wird und einen bestimmten Dienst bereitstellt. In unserem Fall verwenden wir das Skript von MAMP (Zeile 10) um Apache/nginx und MySQL zu starten. Erstellt in einem Texteditor eurer Wahl ein neues Dokument, fügt den nachfolgenden Quelltext ein und speichert die Datei im Verzeichnis ~/Library/LaunchAgents/ unter dem Namen info.MAMP.ApacheMySQL.plist ab. Tipp: Die Tilde ~ in der Pfadangabe verweist auf euren Benutzerordner, z. B. /Users/cedric.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>info.MAMP.ApacheMySQL</string>
<key>Program</key>
<string>/Applications/MAMP/bin/start.sh</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Neuen Dienst laden

Damit der neu angelegte LaunchAgent bei jeder Anmeldung automatisch gestartet wird, müssen wir das Betriebssystem zunächst darüber informieren, dass wir einen neuen Dienst hinzugefügt haben. Öffnet hierfür das Terminal, gebt den folgenden Befehl ein und bestätigt die Eingabe mit Enter bzw. Return.

> launchctl load ~/Library/LaunchAgents/info.MAMP.ApacheMySQL.plist

Überprüft nun mit dem folgenden Befehl, ob der Dienst erfolgreich geladen werden konnte:

> launchctl list | grep MAMP

Die Ausgabe des obigen Befehls sollte nun exakt dem folgenden entsprechen, inklusive des Return-Codes 0, der besagt, dass alles geklappt hat. Eine andere Zahl als 0 weist auf einen Fehler hin.

- 0 info.MAMP.ApacheMySQL

Funktionstest

Startet nun euren Mac neu und überprüft, ob Apache/nginx und MySQL automatisch gestartet wurden. Alternativ könnt ihr auch die Server über die MAMP-App beenden, danach den folgenden Befehl ins Terminal eingeben die Überprüfung im Anschluss daran durchführen.

> launchctl start ~/Library/LaunchAgents/info.MAMP.ApacheMySQL.plist

Das war’s auch schon – viel Spaß beim Entwickeln!

Hinterlasse einen Kommentar