Apache/PHP/MySQL mit PHPUnit und XDebug unter Mac OS X
Eine kurze Anleitung wie man den Apache von Mac OS X so einrichtet, dass man damit arbeiten kann.
1. Apache starten
Geht am einfachsten über die Systemeinstellung > Freigaben. Dort macht man als Mac-User bei „Webfreigabe“ ein Häkchen und gut ist.
2. PHP-Modul laden
Snow Leopard hat eine aktuelle Version von PHP an Bord. Diese muss nur noch in der Apache-Konfiguration aktiviert werden. Dazu in /etc/apache2/httpd.conf das Kommentarzeichen vor der Zeile
LoadModule php5_module libexec/apache2/libphp5.so
entfernen. Das ist es im Grunde schon gewesen. Ganz Verwegene legen aber noch einen Stunt drauf und lassen den Apache unter ihrer eigenen Userid laufen:
User [Benutzername]
In dem Fall sollte das DocumentRoot angepasst und vielleicht auch etwas abgesichert werden. Im Beispiel ist es so, dass der Zugriff von außen über eine Basic-Authentifizierung beschränkt wird. Vom eigenen Rechner aus geht es ohne.
DocumentRoot "/Users/[Benutzer]/Sites"
<Directory "/Users/[Benutzer]/Sites"> AuthUserFile /Users/[Benutzername]/.htpasswd
Options Indexes FollowSymLinks
AllowOverride All # Schaltet Unterstütung für .htaccess-Dateien ein
Order Deny,Allow
Deny from all
Allow from localhost
Allow from [Rechnername].local
AuthName "Sites"
AuthType Basic Require valid-user
Satisfy Any
</Directory>
Das AuthUserFile wird mit dem Kommandozeilenprogramm htpasswd angelegt. Einfach ins Terminal tippen, dann erklärt es sich selbst.
Ordnungshalber sind noch zwei Änderungen zu machen. Als erstes das Userdir-Modul – zuständig für die URLs à la http://localhost/~benutzername – deaktivieren. Dazu die entsprechende Zeile auskommentieren:
# LoadModule userdir_module libexec/apache2/mod_userdir.so
Als zweites wird noch die Ankündigung des Bonjour-Moduls entsprechend angepasst. Die Einstellung liegt in other/bonjour.conf:
# RegisterUserSite customized-users
RegisterDefaultSite
3. MySQL installieren
Das Paket für den Mac herunterladen, installieren und fertig. Naja, fast. Die php.ini muss noch geändert werden, das passiert gleich.
4. php.ini
In /etc liegt eine php.ini.default. Davon einmal eine Kopie erstellen und diese php.ini nennen. Die kann jetzt bearbeitet werden. Hier sollte der Pfad zur MySQL-Socket angepasst werden. Dieser ist nämlich ausnahmsweise nicht /var/mysql/mysql.sock sondern /tmp/mysql.sock (suchen & ersetzen).
5. PHPUnit installieren
Als erstes brauchen wir pear. Das kommt über ein hübsches Installationsskript zu uns:
curl "http://pear.php.net/go-pear.phar" > go-pear.phar
sudo php -d detect_unicode=0 ./go-pear.phar
Obacht! Die installation base muss auf /usr/local geändert werden (es sei denn, man hat einen guten Grund, es woanders hinzuräumen).
Danach lässt sich PHPUnit mit pear installieren:
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear install phpunit/PHPUnit
6. XDebug installieren
Die schmerzfreie Variante ist, sich ein fertig kompiliertes Modul zu besorgen. Dazu lädt man hier den „PHP Remote Debugging Client” für Mac OS X, schnappt sich daraus das für seine PHP-Version passende xdebug.so und kopiert es an einen sinnvollen Ort (z.B. /usr/local/lib).
Danach muss nur noch die php.ini um ein paar Zeilen ergänzt werden:
[xdebug]
zend_extension=/usr/local/lib/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9000
5. Apache neu starten
Jedes mal wenn die Konfiguration geändert wurde, muss der Apache neu geladen werden. Das geht, indem man das Häkchen bei der Webfreigabe einmal weg und dann wieder hinklickt. Wer das albern findet, nimmt das Terminal: sudo apachectl restart
6. Fertig
Zum Ausprobieren zum Beispiel mal eine index.php mit phpinfo(); in /Users/[Benutzer]/Sites legen, dann http://localhost öffnen und schauen, was passiert.