Appels OS X hat leider nur die Version 2.6.16 von libxml und 1.1.12 von libxslt von Haus aus an Bord. Ich hatte letztens das Problem, dass Agavi nicht will it diesen Verionen von libxml.
Das Problem lässt sich für PHP relativ einfach lösen und zwar in dem wir uns die neusten Verionen von libxml und libxslt compilen. Zu finden sind die neusten Versionen auf dem FTP von xmlsoft. Eine gute Anleitung hat James Clarke geschrieben. Da ich öfters gelesen habe, dass man die aktuelle Version von Leopard nicht einfach ersetzen kann, habe ich mich dazu entschieden, nach dem Compile der Programme die dynamischen Links entsprechend zu ändern.
Compile von PHP 5.3
Ich habe vergeblich versucht, PHP mit dem xmlreader zu compilen, aber keine Chance da anscheinend die Version der System libxml und libxslt zu alt sind. Zum Erfolg hat folgender configure command geführt.
CFLAGS="-arch x86_64 -I/usr/local/include -I/usr/local/php5/include/" LDFLAGS="-L/usr/local/include -L/usr/local/php5/include/" ./configure \
'--prefix=/usr/local/php5.3' \
'--with-apxs2=/usr/sbin/apxs' \
'--with-config-file-scan-dir=/usr/local/php5.3/php.d' \
'--with-openssl=/usr' \
'--with-zlib=/usr' \
'--with-zlib-dir=/usr' \
'--with-gd' \
'--with-ldap' \
'--with-xmlrpc' \
'--enable-exif' \
'--enable-soap' \
'--enable-sqlite-utf8' \
'--enable-wddx' \
'--enable-ftp' \
'--enable-sockets' \
'--with-bz2=/usr' \
'--enable-zip' \
'--enable-pcntl' \
'--enable-shmop' \
'--enable-sysvsem' \
'--enable-sysvshm' \
'--enable-sysvmsg' \
'--enable-mbstring' \
'--enable-bcmath' \
'--enable-calendar' \
'--with-mhash=shared,/usr/local/php5' \
'--with-kerberos=/usr' \
'--with-libxml-dir=/usr/local/' \
'--with-xsl=/usr/local/' \
'--with-gettext=/usr/local/php5' \
'--with-curl=shared' \
'--with-png-dir=/usr/local/php5' \
'--with-jpeg-dir=/usr/local/php5' \
'--enable-gd-native-ttf' \
'--with-freetype-dir=/usr/local/php5' \
'--with-mysql=mysqlnd' \
'--with-mysqli=mysqlnd' \
'--with-pdo-mysql=mysqlnd' \
'--with-pgsql=shared,/usr/local/php5' \
'--with-pdo-pgsql=shared,/usr/local/php5' \
'--with-mcrypt=shared,/usr/local/php5' \
'--with-iconv' \
'--without-pear' \
'--disable-xmlreader'
Post Compile
Wie ich schon erwähnt hatte, müssen nach dem compilieren noch die dynamischen Links geändert werden.
# Show dynamic links
otool -L libs/libphp5.so
# Change the dynamic links
install_name_tool -change /usr/lib/libxml2.2.dylib /usr/local/lib/libxml2.2.dylib libs/libphp5.so
install_name_tool -change /usr/lib/libxslt.1.dylib /usr/local/lib/libxslt.1.dylib libs/libphp5.so
install_name_tool -change /usr/lib/libexslt.0.dylib /usr/local/lib/libexslt.0.dylib libs/libphp5.so
Nicht vergessen das ganze nocheinmal zu verifizieren, ob auch alles geklappt hat. So jetzt noch mit „make install“ PHP installieren, Apache neustarten und testen.