Neue Indianer für den Tiger: Apache, Mysql und php Update für OS X 10.4

Montag, 12. Januar 2009 |  Autor:

apache_logo_mediumAuch wenn Snow Leopard vor der Tür steht, so gibt es noch einige Tiger Installationen. Leider hat es Apple versäumt den Apache-Server und das PHP zu aktualisieren. So verrichtet noch Apache 1.3 und PHP4 noch seinen Dienst. Da hier ein Update/Upgrade notwending, installieren wir noch schnell mysql5 und bürsteln so den Tiger ordentlich auf.
Die folgende Anleitung richtet sich nicht nur an Nerds, so werde ich nicht alles aus den Sourcen kompilieren sondern den Update mit Hilfe des Portage Systems von macports.org durchführen, aber um das Terminal komme ich nicht herum.

1. Installation von macports.

Was ist macports ?
MacPorts, vormals DarwinPorts, ist ein Open-Source-Paketmanager, der die Installation anderer Open-Source-Software auf Mac OS X undDarwin mit Hilfe von Port-Skripten erleichtern soll”. Mithilfe von MacPorts kan man also die neusten Versionen von u.a. Apache, PHP und mysql übersetzen und zum Einsatz bringen.

screen-capture-7Die Installation von Macport ist einfach, über die subversion Downloadseite von macports.org wird das Tigerpaket heruntergeladen
Damit wird das MacPorts-1.7.0-10.4-Tiger heruntergeladen und je nach Einstellung aktiviert und das darin enthaltene MacPorts-1.7.0.pkg gestartet und ein Fenster, wie das Bild links, öffnet sich. 
Nun den Installationsanweisungen folgen und MacPorts wird installiert. Allerdings findet man nichts unter /Programme zu Thema MacPorts, da MacPorts über das Terminal gesteuert wird.
 


Nun das Terminal starten, das befindest sich in Programme->Dienstprogramme.

2. Ports aktualisieren
Im Terminal folgenden Befehl eingeben.
riddick:~ dkr$ sudo port sync
Password:xxxxxx Hier das eigene Benutzerpasswort eingeben.
riddick:~ dkr$ sudo port selfupdate 
MacPorts base version 1.700 installed 
Downloaded MacPorts base version 1.700 
The MacPorts installation is not outdated so it was not updated    

Damit ist MacPorts aktualisiert.

3. Apache Installieren

Im Terminal bleiben und folgende Kommandos geben ein:

sudo port install apache2

Nun können wir einen Kaffee trinken gehen, denn jetzt erscheinen auf dem Terminal ein Reihe von Meldungen.
Am Ende sollte ohne eine Fehlermeldung wieder die Eingabeaufforderung erscheinen.

Sollen jetzt die “alten” Benutzerverzeichnisse übernommen werden – die unter “Web-Sites” abgelegt waren – muss die folgende
Anpassung stattfinden.

Im Terminal den Befehl:

cd /opt/local/apache2/conf/
sudo chmod 666 httpd.conf  
sudo chmod 766 . Open /opt/local/apache2/conf/httpd.conf

eingeben, damit wird die httpd.conf Datei im Standard-Textbearbeitungsprogramm geöffnet. Sollte hier eine Fehlermeldung erscheinen so ist wahrscheinlich der Endung conf kein Programm zugeordnet. 

Dann mit:

Open .

ein Finder Fenster öffnen und die Datei Öffnen und Textedit auswählen. 

Jetzt sucht man den Bereich: 
DocumentRoot "/opt/local/apache2/htdocs"  und tauscht ihn aus durch
DocumentRoot "/Library/WebServer/Documents" 

weiter unten findet man den Bereich

Directory "/opt/local/apache2/htdocs" 

und ändert ihn in 

Directory "/Library/WebServer/Documents"

nun sucht man noch die Zeile mit

#Include conf/extra/httpd-userdir.conf und löscht das # Zeichen.

Nachdem das File gespeichert wurde müssen die Rechte wieder zurücksetzt werden:

sudo chmod 644 httpd.conf  
sudo chmod 755 .

Um den Apache2 Server beim Booten des System automatisch zu starten folgenden Befehl ausführen:

sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

Um den neuen Apachen zu starten ruft man apachectl auf.

sudo /opt/local/apache2/bin/apachectl start

Damit ist der Apache2 Server installiert

4. Installation der mysql Datenbank

Die Installation der Datenbank erfolgt ebenfalls über das Terminal.

sudo port install mysql5 +server

Und wir können uns die nächste Tasse Kaffee holen.
Sobald macports fertig ist erstellen wir die Grundkonfiguration mit:

sudo mkdir /opt/local/var/db
sudo chown mysql /opt/local/var/db
sudo -u mysql mysql_install_db5
sudo /opt/local/share/mysql5/mysql/mysql.server start

5. PHP Installation

Um PHP zu installieren benötigt man wieder nur ein Kommando bei macports:

sudo port install php5 +apache2 +mysql5 +sqlite +soap

Damit installiert man php mit Apache2, Mysql, SQLITE und SOAP Unterstützung. Will man etwa PEAR noch hinzufügen fügt man an die Zeile noch ein +pear an. Ich will das hier aber nicht.
Sobald die Installation fertig ist, muß man php bei Apache registrieren, das erfolgt über die Kommandos:

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

Jetzt erstellt man eine php.ini Datei, da auch hier eine Beispielkonfiguration ausgeliefert wird helfen folgende Kommandos:

cd /opt/local/etc
cp php.ini-dist php.ini

Einmal den Apachen durchstarten mit:

/opt/local/apache2/bin/apachectl restart

und fertig …. im Keller ist doch gar nicht so schlimm.

Bei Fragen die Kommentarfunktion verwenden.

Tags »   , , , , , «

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Anleitung, OSX, Software, Tipps

Diesen Beitrag kommentieren.

2 Kommentare

  1. 1
    Jochen 

    Hallo, ich habe ein paar Probleme mit der Prozedur:
    1. die “Systemeinstellung Web Sharing” hängt und startet Apache wohl nicht
    2. die mySQL admin tools finden mySQL5 nicht. “Could not connect to MySQL instance at localhost. Error: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) (code 2002)
    3. PORT kennt PHP nicht: es muss wohl “sudo port install php5 +apache2 +mysql5 +sqlite +soap” heißen. Der Build läuft gerade noch …

    Gruß,
    Jochen

  2. Hallo Jochen,

    hab leider dein Kommentar übersehen.
    Unter http://www.switch2mac.de/2009/osx/anleitung-snow-leopard-lighttpd-php-5-2-und-mysql-server/ findest Du eine aktuellere Version, die vom Prinzip auch mit 10.4 funktionieren sollte.
    Bei 2. die mySQL admin tools finden mySQL5 nicht. “Could not connect to MySQL instance at localhost. Error: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) (code 2002)
    Gehe ich stark davon aus, dass Du die mysql noch nicht gestartet hast, das hab ich in meiner Anleitung auch vergessen, sorry.
    Unter 3. mit php5 hast Du vollkommen recht.

    Danke
    David

Kommentar abgeben