Wer unter einem 64-Bit Linux System einen Entwicklungsserver mit xampp bzw. lampp aufgesetzt hat, muss leider mit Stolpersteinen rechnen wenn xdebug ergänzt werden soll.
Der Grund ist wohl, dass der Apache eine 32-Bit Version der xdebug.so (extension) erwartet und eine 64-Bit Version mit dieser Meldung zurückweist:
warning: php startup: unable to load dynamic library … wrong elf class: elfclass64 in unknown on line 0
Deswegen müssen wir den Compiler zwingen, eine passende Version zu erstellen. Der Vollständigkeit halber nun eine komplette Step-by-Step Installationsanleitung (getestet mit Ubuntu 64Bit/Server):
Zuerst holen wir uns – sofern noch nicht geschehen – die zu unserem lampp passenden Developer Files von sourceforge.net/projects/xampp/files/ (devels).
sudo tar xzf xampp-linux-devel-1.7.1.tar.gz -C /opt
Als nächstes die aktuellen Sources von xdebug.org/download.php
tar xzf xdebug*
cd xdebug*
Unter Ubuntu ist es meist noch erforderlich, diese Pakete nachzuinstallieren:
sudo apt-get install ia32-libs gcc-multilib
Und noch eine Hand voll exports, die bis zum nächsten Neustart Wirkung haben.
export PATH=/opt/lampp/bin:$PATH
export PATH=/opt/lampp/bin:$PATH
export PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig
export CC="gcc -m32"
export CXX="g++ -m32"
phpize
./configure --enable-xdebug --with-php-conig=/opt/lampp/bin/php-config
--x-libraries=/usr/lib --target=i686-pc-linux
make
make install
sudo cp modules/xdebug.so /opt/lampp/lib/php/extensions/
make test
War der Test erfolgreich, dann noch die php.ini editieren. Dazu beispielsweise…
nano /opt/lampp/etc/php.ini
So sollte die neue Zeile aussehen (ggf. vorherige Einstellung für zend_extension überschreiben!):
zend_extension=”/opt/lampp/lib/php/extensions/xdebug.so”
Und dann überprüfen:
sudo /opt/lampp/lampp restart
/opt/lampp/bin/php -i | grep xdebug