Apache 2, PHP 5 und MySQL 5 über MacPorts unter Mac OS X 10.8 (Mountain Lion) installieren

Diese ganze Installation macht man leider (oder zum Glück) nicht so häufig und daher geht es irgendwie auch nie ohne Anleitung. Hier noch einmal eine Zusammenfassung, wie man all diese Sachen am schnellsten installiert bekommt.

System vorbereiten

Zunächst ein paar wichtige Dinge, die man vor der Installation überprüfen sollte.

MacPorts installieren

Insofern dies noch nicht geschehen ist, sollte zunächst MacPorts installiert werden. Dazu kann auf macports.org ein entsprechender Installer geladen werden. Nach erfolgreicher Installation ist MacPorts im Terminal mit port ansprechbar.

Um im Folgenden mit MacPorts arbeiten zu können und um bspw. Quelldateien zu Kompilieren, wird zudem noch XCode benötigt. Dieses kann über den AppStore oder auf der Apple Developerseite geladen werden.

Bevor man mit der Installation weiterer MacPorts-Quellen fortfahren kann, sollte überprüft werden, dass die „Command Line Tools“ in XCode installiert sind. Ohne diese ist ein kompilieren von Quelldateien nicht möglich. Wie geht das? XCode starten und in den Einstellungen im Bereich „Downloads > Components“ diese Komponente installieren.

Zum Abschluss sollte man noch einmal prüfen, dass MacPorts auf dem aktuellsten Stand ist:

sudo port -v selfupdate

Systemumgebung aktualisieren

Nur als kleine Ergänzung, falls der letzte Befehl nicht gleich auf Anhieb funktionierte: um MacPorts über port ohne Pfadangabe aufrufen zu können, muss ggf. die Umgebungsvariable PATH angepasst werden. Das lässt sich ganz einfach mit folgendem Befehl beseitigen:

cd ~
echo 'export PATH=/opt/local/bin:/opt/local/sbin:$PATH' >> .profile

Apache aus Mac OS stoppen

Wichtig für die Installation des Apache über MacPorts ist, dass der bereits im System vorhandene Apache von Mac OS X gestoppt wird. Tut man dies nicht, dann kann es zu Problemen zwischen System-Apache und unserem installieren Apache aus MacPorts kommen.

In früheren Mac OS X Versionen konnte man diesen Server bequem unter den Freigabe-Einstellungen des Systems deaktivieren. Ab Mac OS X 10.0.x muss man dies nun von Hand im Terminal erledigen. Hier die Befehle dazu:

sudo apachectl stop

Analog dazu lässt sich der Server mit start starten bzw. mit restart neu starten.

MySQL installieren

Die Installation des MySQL Servers ist recht simpel:

sudo port install mysql5-server

Um MySQL nach dieser Installation beim Systemstart automatisch starten zu lassen, muss MySQL durch MacPorts geladen werden:

sudo port load mysql5-server

Da es sich hier um eine komplette Neuinstallation handelt, sollten zunächst die MySQL eigenen Datenbanken erstellt werden, bevor man MySQL startet:

sudo -u _mysql mysql_install_db5

Die Konfiguration von MySQL wird aus der Datei /opt/local/etc/mysql5/my.cnf entnommen. Existiert diese Datei nicht, dann erstellt man eine Datei und fügt folgenden Inhalt hinzu:

[mysqld_safe] socket = /tmp/mysql.sock

Um nun auch für andere Programme mysql.sock zu erreichen, ist folgender Befehl noch ratsam:

sudo ln -s /opt/local/var/run/mysql5/mysqld.sock /tmp/mysql.sock

Da MySQL mit dem Anlegen der Standard-Tabellen auch mit Standard-Passwörtern (bzw. ohne Passwort) konfiguriert ist, sollte abschließend das root Passwort geändert bzw. gesetzt werden, um Fremdzugriffe zu vermeiden:

/opt/local/lib/mysql5/bin/mysqladmin -u root password 'neues-password'

Als kleine Anmerkung: der Pfad zur MySQL-Binary ist standardmäßig nicht in der Benutzer-.profile Datei enthalten, d.h. der Terminal-Befehl mysql lässt sich bis hierher nur mit der Angabe des kompletten Pfades ausführen. Dieser Eintrag kann jedoch ganz schnell erstellt werden:

cd ~
echo 'export PATH=/opt/local/lib/mysql5/bin:$PATH' >> .profile

mysql sollte nun ohne zusätzliche Pfadangaben im Terminal ausführbar sein.

PHP & Apache installieren

PHP wird nun mit Apache und MySQL-Unterstützung installiert:

sudo port install php5 +apache2 +pear +fastcgi php5-mysql +mysqlnd

Wie auch bei MySQL lässt sich Apache ebenfalls (wenn gewünscht) bei Systemstart automatisch starten:

sudo port load apache2

PHP Konfigurieren

PHP kommt mit zwei vorgefertigten Konfigurationsdateien für eine Entwicklungsumgebung oder eine öffentliche Serverumgebung. Je nachdem, wie man den Server verwendet, sollte man eine dieser Vorlagen als eigentliche php.ini verwenden. Hier die beiden Befehle zum Kopieren der Datei:
(für Entwicklungsumgebungen)

cd /opt/local/etc/php5/
sudo cp php.ini-development php.ini

(für öffentliche Server)

cd /opt/local/etc/php5/
sudo cp php.ini-production php.ini

Hat man sich für eine dieser Dateien entschieden, dann legt man in der php.ini die Zeile der Zeitzone fest:

date.timezone = Europe/Berlin

Apache konfigurieren

Nach einer neuen Installation muss PHP zunächst in der Serverumgebung aktiviert werden:

cd /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

Weitere Apache-Einstellungen sind in der Datei /opt/local/apache2/conf/httpd.conf zu finden. Um beispielsweise neben der Standard-Index-Datei index.html auch index.php zu verwenden, empfiehlt es sich folgende Zeilen auszukommentieren bzw. zu ergänzen:

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Das Ausführen von PHP-Dateien erreicht man, indem im Bereich <IfModule mime_module> die PHP-Dateien registriert werden:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Zum Aktivieren von Benutzerverzeichnissen erfolgt über:

Include conf/extra/httpd-userdir.conf

Möchte man virtuelle Hosts verwenden, dann sollte zudem diese Zeile auskommentiert werden:

Include conf/extra/httpd-vhosts.conf

Wie man virtuelle Hosts einrichtet ist hier ausführlicher beschrieben. Man sollte aber beachten, dass dort andere Pfade zur httpd.conf angegeben sind.

Tips und Tricks

Weitere PHP-Module installieren

Mit dem oben beschriebenen Weg wird nur ein kleiner Teil der verfügbaren PHP-Module installiert. Je nach Anforderungen lassen sich diese aber ohne Probleme über MacPorts nachinstallieren. Hier eine kleine Auswahl häufig verwendeter Module:

sudo port install php5-openssl php5-curl php5-gd php5-iconv php5-http php5-mcrypt php5-xdebug

Was gibt es noch für Module? Die Suche in MacPorts zeigt alle Möglichkeiten an:

port search php5-

Apache starten/stoppen/neustarten

Werden am Apache oder an PHP Änderungen vorgenommen, dann muss ser Server neugestartet werden, damit diese Änderungen wirksam werden. Für die vorangegangene Installation lautet der Befehl:

sudo /opt/local/apache2/bin/apachectl -k restart

MacPorts aktualisieren

Vor jeder Änderung, welche über MacPorts installiert wird, empfiehlt es sich, MacPorts selbst zu aktualisieren. Das geschieht mit diesen Befehlen:

sudo port upgrade outdated

Schreibe einen Kommentar

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