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:
1 | 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:
1 2 | 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:
1 | 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:
1 | sudo port install mysql5-server |
Um MySQL nach dieser Installation beim Systemstart automatisch starten zu lassen, muss MySQL durch MacPorts geladen werden:
1 | 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:
1 | 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:
1 | [mysqld_safe] socket = /tmp/mysql .sock |
Um nun auch für andere Programme mysql.sock
zu erreichen, ist folgender Befehl noch ratsam:
1 | 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:
1 | /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:
1 2 | 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:
1 | 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:
1 | 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)
1 2 | cd /opt/local/etc/php5/ sudo cp php.ini-development php.ini |
(für öffentliche Server)
1 2 | 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:
1 | date .timezone = Europe /Berlin |
Apache konfigurieren
Nach einer neuen Installation muss PHP zunächst in der Serverumgebung aktiviert werden:
1 2 | 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:
1 2 3 | <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:
1 2 | AddType application /x-httpd-php .php AddType application /x-httpd-php-source .phps |
Zum Aktivieren von Benutzerverzeichnissen erfolgt über:
1 | Include conf /extra/httpd-userdir .conf |
Möchte man virtuelle Hosts verwenden, dann sollte zudem diese Zeile auskommentiert werden:
1 | 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:
1 | 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:
1 | 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:
1 | 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:
1 | sudo port upgrade outdated |