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
- September 19th, 2007
- 4 comments.
Leave a comment! - Bookmark & Share
- Apple, Deutsch, Helma, Server, Tools



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
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!
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
September 19th, 2007
13:35
[...] die aktuellen Sourcen geholt und wie schon früher beschrieben [...]
September 19th, 2007
23:38