PHP Extension für ZendServer kompilieren (Mac OSX)

Posted in PHP, 31.10.2011 18:10

Anlaß:

sudo pecl install apc installiert leider eine 64-bit-Variante des apc-Moduls. Der ZendServer auf osx läuft aber unter 32-bit.Nach einiger Recherche stellt sich raus, daß auch die Kompilation unter Mac OSX nicht reibungslos läuft, weil sich ja auch noch die Standard-Server-Konfiguration mit einer eigenen PHP-Installation an Bord befindet. Es muß also dafür gesorgt werden, daß die ZendServer-Konfiguration beim Kompilieren berücksichtigt wird.

Das geht so:

cd /tmp
sudo pecl download apc
sudo mkdir PHP_APC
sudo tar -zxvf APC-*.tgz -C PHP_APC
cd PHP_APC/APC*
sudo /usr/local/zend/bin/phpize
sudo ./configure 
MACOSX_DEPLOYMENT_TARGET=10.6 
CFLAGS="-arch i386 -g -Os -pipe -no-cpp-precomp" 
CCFLAGS="-arch i386 -g -Os -pipe" 
CXXFLAGS="-arch i386 -g -Os -pipe" 
LDFLAGS="-arch i386 -bind_at_load" 
--enable-apc-debug=no 
--prefix=/usr/local/zend 
--with-php-config=/usr/local/zend/bin/php-config
sudo make
sudo make install

Die letzten beiden Zeilen für configure sind entscheidend. Im Original-Skript für die apc-Configuration waren noch einige Parameter mehr, die evtl. gar nicht notwendig gewesen wären. wichtig sind die CFLAGS mit den Architekturparametern.

Die Ausgabe des configure-Skripts muß dann die richtigen Include- und Extension-Verzeichnisse ausgeben:

checking for PHP includes... -I/usr/local/zend/include/php -I/usr/local/zend/include/php/main -I/usr/local/zend/include/php/TSRM -I/usr/local/zend/include/php/Zend -I/usr/local/zend/include/php/ext -I/usr/local/zend/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/zend/lib/php_extensions

Leider funktioniert die Extension trotzdem nicht... Immerhin, das Kompilieren hat geklappt...