VividVisions • information design

Apache 2 mit PHP 5 auf Mac OS X (Server) 10.3.9 kompilieren und installieren

Angefangen hat alles mit Subversion. Ich wollte einen der Entwicklungsserver neu aufsetzen und bei dieser Gelegenheit gleich von CVS auf SVN umsteigen. Nachdem man mit SVN als Apache Modul (mod_dav_svn) flexibler ist, als mit dem standalone Server svnserve, wurde ich endlich gezwungen Apache von Version 1.3 auf 2.2 zu aktualisieren. Und wenn ich schon mal dabei bin, könnte ich doch auch gleich PHP auf Version 5 bringen und mod_jk kompilieren, oder?

Auf diesem Server läuft Mac OS X Server 10.3.9, was die Sache nicht unbedingt vereinfacht, da es kaum vernünftige Binaries dafür gibt. Tools wie zum Beispiel Fink oder MacPorts wollte ich nicht installieren, da ich der Meinung war, die Kompilierung der einzelnen Komponenten schnell erledigen zu können. Eventuell hätte ich mir mit diesen Tools einiges an Zeit gespart. Es hat ein bisschen gedauert, aber nun läuft der Server mit Apache 2.2 und PHP 5.2.4. Hier eine kleine Anleitung.

Achtung: Diese Anleitung ist nur für Leute gedacht, die wissen was sie tun! Ich übernehme keine Garantie oder Haftung jeglicher Art!

Auf dem Server sollte Xcode installiert sein, das mit jedem Mac OS geliefert wird. Herunterladen kann man es hier. Damit hat man alle Compiler und Programme, die man für die Installationen benötigt.

Apache 2.2

Apache 2.2 zu kompilieren sollte recht schnell gehen. Einfach den Sourcecode vom aktuellen Release unter http://httpd.apache.org/download.cgi herunterladen, konfigurieren und installieren. Wenn man via Terminal unterwegs ist, holt man sich die Datei am besten mit cURL:

curl -O http://mirror.deri.at/apache/httpd/httpd-2.2.6.tar.gz
gnutar -zxf  httpd-2.2.6.tar.gz
cd httpd-2.2.6/
./configure --enable-mods-shared=all --prefix=/usr/local/apache2
make
make install

Mit dieser Konfiguration wird Apache mit allen möglichen Modulen unter /usr/local/apache2 installiert. Eine Beschreibung sämtlicher Konfigurationsoptionen gibt es hier. Folgt man diesen Anweisungen ist Apache 2.2 bereit, die Version 1.3 zu ersetzen.

PHP 5.2.4

Hier das ganze Spiel mit einem aktuellen Quellcode von PHP wiederholen. Die Konfiguration ist ein bisschen aufwändiger, denn man sollte sich überlegen, welche Module man eventuell benötigen wird. Die komplette Liste der Konfigurationsoptionen für PHP findet Ihr hier.

curl -O http://at2.php.net/distributions/php-5.2.4.tar.gz
gnutar -zxf  php-5.2.4.tar.gz
cd php-5.2.4/
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-openssl --with-zlib --with-bz2 --with-curl=/usr/local/curl --enable-exif --with-gd --enable-ftp --enable-soap --enable-sqlite-utf8 --with-xsl --enable-fastcgi --enable-mbstring --prefix=/usr/local/php5  --with-mysqli=/usr/local/mysql/bin/mysql_config
make
make install

Bei der Konfiguration traten die ersten Fehler auf.

Probem 1: cURL

Die Version von cURL, die bei Mac OS X Server 10.3.9 mitgeliefert wird, ist zu alt für die aktuelle PHP Version. Also kurzerhand den aktuellen Sourcecode geholt und cURL auf den neusten Stand gebracht:

curl -O http://curl.haxx.se/download/curl-7.17.0.tar.gz
gnutar -zxf curl-7.17.0.tar.gz
cd curl-7.17.0/
./configure --prefix=/usr/local/curl
make
make install

So wird unter /usr/local/curl die neueste Version installiert. In meinem Fall habe ich die vorhandene nicht ersetzt, aber das sollte kein Problem sein.

Problem 2: libjpeg und libpng

PHP 5 kommt zwar mit einer eigenen Version der Grafikbibliothek GD, um es kompilieren zu können benötigt man allerdings trotzdem noch die beiden Libraries libjpeg und libpng. Hier gibt es glücklicherweise Abhilfe in Form von Binaries: http://ethan.tira-thompson.com/Mac%20OS%20X%20Ports.html

curl -O http://ethan.tira-thompson.com/Mac%20OS%20X%20Ports_files/libpng%20%28universal%29.dmg
hdiutil attach libpng%20%28universal%29.dmg
installer -pkg /Volumes/libpng (universal) /
hdiutil detach /Volumes/libpng (universal)

Mit hdiutil kann man DiskImages (un)mounten und der installer ersetzt bei der Package-Datei den Doppelklick. Die Standardinstallation sollte hier ausreichen. Dann noch das gleiche mit libjpeg durchspielen. Damit wären diese beiden Libraries auf unserem Rechner und wir können PHP mit GD kompilieren.

Problem 3: libxml und libxslt

Oder doch nicht? Plötzlich kamen Fehlermeldungen bei libxml und dann auch bei libxslt. In einem Forum habe ich nachgelesen, dass die bereits installierten Versionen nicht ganz vollständig seien und man auch diese Libraries neu installieren muss. Freude, freude…

Also wieder einmal Sourcecode herunterladen, und zwar von http://www.xmlsoft.org. Beide Bibliotheken habe ich mit den Befehlen

.configure --prefix=/usr
make
make install

direkt unter /usr installiert, denn dort werden sie automatisch beim Kompilierungsprozess von PHP gefunden.

mod_jk

Für einige Projekte benötige ich das Apache JK Modul, in meinem Fall für die Kommunikation zwischen Helma und Apache. Auch hier wieder den Quellcode beschafft (http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/) und mit

./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=/usr
make
make install

schnell installiert.

Damit war ich nun endlich komplett. Das eigentlichen Ziel, nämlich Subversion zu installieren, ist eine andere Geschichte und sollte ein anderes Mal erzählt werden…

Links

Diese Beiträge haben mir geholfen:

Build Apache 2.2.3, php 5.1.15 and mysql 5.0.24
http://www.macosxhints.com/article.php?story=2006082512161389

Building and Installing Apache 2 and PHP 5.1.1 on Mac OS X 10.4.3 Tiger
http://www.phpmac.com/articles.php?view=237

Additional Useful Apache2 Config Settings
http://www.phpmac.com/articles.php?view=214

4 comments (Skip ↓)

Hallo
Versuche gerade den Apache2.2.6 auf einem USB-Stick unter Mac OSX 10.3.9 zu kompilieren. Bin daher auf diese Seite gestossen, weil ich bei einer Fehlermeldung nicht mehr weiterkomme.
Vielleicht haben sie das ja auch schon gesehen.
Hier die Meldung nach ./configure:
“/lib/cpp” fails sanity check

Thx und Grüsse
Tom

Tom
September 19th, 2007
17:53

Hallo Tom,

tut mir leid, diese Fehlermeldung kenne ich nicht. Aber eine schnelle Google-Suche hat gezeigt, dass Du nicht der einzige mit diesem Problem bist. Viel Erfolg!

Walter Krivanek
September 19th, 2007
12:22

Hallo Walter.
Danke für deinen schnellen Response. Bin weiter am Problem dran. Mal schauen was geht. Werde dich dann informieren.
Gruss
Tom

Tom Müller
September 19th, 2007
13:35

[...] die aktuellen Sourcen geholt und wie schon früher beschrieben [...]

Leave a comment









Twitter

Nichts zu danken!