OS X 10.11 El Capitan – Lokale Entwicklungsumgebung mit Apache, PHP und MySQL

Schon seit einigen Versionen von OS X wird PHP und Apache von Haus aus mitgeliefert. Auf diese will ich hier bewusst verzichten. Ich werde hier alles mit Homebrew installieren und konfigurieren, da ich so OS X unabhängig meine Versionen für die einzelnen Elemente wählen kann. Vorab sei gesagt, es sind einige Schritte für die Installation diese Testumgebung durchzuführen. Will man nur schnell einen kleinen Test machen, kann man auch auf einer der XAMPP Varianten für OS X zurückgreifen.

Die Anleitung ist so aufgebaut, dass es der erste Versuch der Installation ist. Wurden vorher schon Änderungen an der lokalen Konfiguration durchgeführt kann es während der Installation zu Problemen kommen.

Homebrew

Wie man genau Homebrew installiert, will ich hier heute mal nicht zeigen. Es gibt dafür bereits einige gute Anleitungen im Netz. Ich selbst habe es nach dieser installiert: http://brew.sh

Habt ihr Homebrew bereist installiert, sollte ihr diesen auf jeden fall updaten.

MySQL

Um MySQL mit Homebrew zu installieren, kann einfach der folgende Befehl im Terminal verwendet werden:

Die Installation dauert dann einen Moment. Nachdem die Installation abgeschlossen ist, kopieren wir die default my-default.cnf in das Cellar Verzeichnis von Homebrew:

Als nächste konfigurieren wir die maximale Paketgröße. Dies sollte man nur auf Entwicklungsserver machen. Dafür den kompletten Block kopieren und einfügen.

Das selbe machen wir nun noch für innodb_buffer_pool_size um die Performance etwas zu erhöhen.

Jetzt müssen wir MySQL mit OS X launchd starten. Früher war dies ein langwieriger Prozess mit launchctl Befehlen, aber jetzt können wir den Befehl brew nutzen:

Da erstmal kein root Passwort festgelegt wurde, holen wir das mit mysql_secure_installation nach:

Apache

Bevor wir mit der Installation des Apache unter Homebrew beginnen können, müssen wir zuerst den von OS X mitgelieferten Apache stoppen. Im selben Zuge hindern wir den OS X Apache daran, beim Booten direkt gestartet zu werden.

Im nächsten Schritt wollen wir, dass der Apache nicht im Standard Homebrew Repository Verzeichnis läuft. Das machen wir wie folgt:

Nun hängen wir noch das apache mpm Modul an, und verwenden die Homebrew OpenSSL-Bibliothek.

Um Apache und PHP dazu zu bekommen über PHP-FPM zu kommunizieren, installieren wir das mod_fastcgi Modul:

Um Probleme zu vermeiden, entfernen wir die alten Verweise von mod_fastcgi:

Wir müssen nun einige Einstellungen für Apache, PHP, PHP-FPM und mod_fastcgi in der entsprechenden Konfigurations-Datei vornehmen. Die Klammer im Codeblocke dienen der Unterteilung in Teilprozesse.
Zum Ausführen des Befehles den gesamten Codeblock markieren und kopieren.

Mithilfe der Datei httpd-vhost.conf kofigurieren wir unsere VirtualsHosts. Da bei der aktuellen Version von OS X die entsprechenden Ordner für logs und ssl nicht mir standardmäßig angelegt sind, holen wir dieses nun nach.

Nun legen wir noch die httpd-vhost.conf an und füllen diese mit leben. Bei den Portangaben handelt es sich übrigens nicht um Schreibfehler. Diese sind bewusste gewählt =)

 

Der auskommentierte Bereich ist für den Fall, dass man den Auto-vHost mal deaktivieren will/muss.
In der Konfiguration ist vielleicht aufgefallen ,dass ~/Sites/ssl/ssl-modius-cert.inc mehrfach hinterlegt wird. Diese Datei erstellen wir nun.

Nun starten wir den Apache

In der httpd.conf haben wir ja festgelegt, dass der Webserver unter Port 8080 bzw. 8443 erreichbar ist. Dadurch müssen wir auch an unserer URL immer den entsprechenden Port anhängen. (projectname.dev:8080 bzw. projectname.dev:8443) Dies wollen wir nun ändern.

Der folgende Befehl legt die Datei /Library/LaunchDaemons/co.echo.httpdfwd.plist an. Dafür werden root Rechte benötigt

Der folgende Befehl wird die Datei zu erstellen /Library/LaunchDaemons/co.echo.httpdfwd.plist als root und root gehören, da sie erhöhte Rechte benötigt:

Diese Datei soll nun beim Anmelden an das System geladen werde und macht die entsprechende Portweiterleitung (80 –> 8080, 443 –> 8443)

PHP

Als nächste installieren wir PHP. Dafür kann der folgende Befehl verwendet werden.

Nun setzten wir noch in PHP unsere Zeitzone. Gerade für das Arbeiten mit den Log Dateien ist dies sehr wichtig.

Jetzt gilt es noch ein kleines Perl Rechteproblem zu lösen:

Um jetzt noch die Performance unserer PHP Installation zu erhöhen, installieren wir das Plugin opcache.

Zu guter letzt Starten wir noch PHP-FPM

DNSMasq

Im moment könnten wir unsere Projekte nur mit der Eingabe der IP Adresse aufrufen (127.0.0.1). Wir wollen aber, dass unsere Projekte mit einem DNS-Namen der auf .dev endet aufgerufen werden kann. Dafür Richten wir nun ein DNSMasq ein, der alle .dev auf die IP 127.0.0.1 weiterleitet.

Nach der Konfiguration, müssen wir dnsmasq noch starten.

Wenn der Dienst gestartet wurde, erstellen wir noch die DNS Querry für .dev

Zum Testen kann man nun den folgenden Befehl verwenden.

Die Antwort bekommen wir dann von 127.0.0.1. Das sollte dann ungefähr so aussehen:

Test

Nun wollen wir das ganze auch noch testen. Dafür wechseln wir in den Ordner Sites/.
Hier legen wir nun einen neuen Ordner für unseren test an.

Anschließend wechseln wir in den Ordner und legen dort eine Datei index.php an. Diese wird mit dem folgenden Inhalt gefüllt.

Anschließend rufen wir im Browser test.dev auf. Das sollte dann so aussehen:

testaufruf_phpinfo

 

Quelle: echo.co

 

About Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Speak Your Mind

*