Pull to refresh

XAMPP on Linux + Xdebug (Linux 64bit)

Reading time3 min
Views6.9K
Итак, сегодня мне удалось поставить XDebug на XAMPP for Linux. Если у вас 32-битный Линукс, можете не читать оставшийся текст, для вас есть простое решение, и не одно, которое можно с легкостью найти в Сети.

О безумных благах дебаггера для ПХП даже не нужно рассказывать. На 64-битной висте/виндоус7 хдебаг никак не хотел работать (обваливалась виста; для семерки не было скомпиленной версии библиотеки)

Для тех, кто не знает:
XAMPP — пакет программ из apache+mysql+php+perl+proftpd+…
XDebug — библиотека для РНР. Позволяет отчищать от лажи скрипты на РНР. (В основном используют вкупе с IDE, например Eclipse+PDT. Позволяет расставлять брейкпоинты, отлаживать пошагово и смотреть содержимое переменных)

Если вы попали сюда из поиска, то вас мало интересуют мои приключения и поиски, поэтому сразу к делу.

Update: Дорогие будущие читатели, эта статья для вас, если:
* Вам часто нужно переключаться между разными конфигурациями веб-сервера (напирмер PHP4/5.2/5.3) или вы по другим причинам пользуетесь XAMPP под Линукс.
* Вам нужен XDebug
* У вас 64-битный Линух
* К моменту когда вы начнете читать этот пост не существует 64битного ХАМРР.

Остальные, можете не читать. Я не сравниваю ХАМРР с другими существующими решениями, просто он у меня есть, я с удовольствием пользуюсь. Я покопался в сети и не нашел решения для моей проблемы, поэтому решил поделиться с вами тут.



Система


Linux: Ubuntu 9.10 Karmic Koala 64bit
XAMPP: v1.7.1 (with PHP 5.2.9) — думаю, для другой версии процесс будет очень похожим.

Установка XAMPP


Идем сюда, выбираем нужную версию
sourceforge.net/projects/xampp/files

В моем случае — это XAMPP Linux/1.7.1

Выкачиваем файлы (допустим в каталог ~/Downloads/xampp/):
* xampp-linux-devel-*.tar.gz — содержит нужные для компиляции xdebug заголовочные файлы
* xampp-linux-*.tar.gz — сам XAMPP

Устанавливаем Ксамп и библиотеки в папку /opt

# cd ~/Downloads/xampp

# sudo tar xzf xampp-linux-1.7.1.tar.gz -C /opt

# sudo tar xzf xampp-linux-devel-1.7.1.tar.gz -C /opt


Качаем xdebug


Вот отсюда: xdebug.org/download.php
выкачиваем исходники необходимой версии (я выкачал 2.1.0RC0 и 2.0.5). Я скачал в ~/Downloads/xdebug/

Распаковываем

# tar xzf xdebug*

# cd xdebug*


Установка других библиотек


Честно говоря, даже не знаю, нужны ли они на самом деле. Но для того, чтобы скомпилить ФФ для 32-бит из 64 вроде как нужны

# sudo apt-get install ia32-libs gcc-multilib

Настраиваем переменные окружения


Почему-то phpize наотрез отказывался работать, жалуясь на $PHP_AUTOCONFIG и $PHP_AUTOHEADER без следующей вещи:

* Открываем ~/.bashrc
* Вконце дописываем строчку:
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"


Собираем Xdebug для 32-бит


# phpize

# ./configure --enable-xdebug --with-php-conig=/opt/lampp/bin/php-config --x-libraries=/usr/lib --target=i686-pc-linux

# make


Копируем в папку к Ксампу

# sudo cp modules/xdebug.so /opt/lampp/lib/php/extensions/


Конфигурируем PHP


# sudo gedit /opt/lampp/etc/php.ini

Включаем библиотеку (я добавил это на 545 строке)
zend_extension="/opt/lampp/lib/php/extensions/xdebug.so"


Запуск/перезапуск и проверка


# sudo /opt/lampp/lampp restart

# /opt/lampp/bin/php -i | grep xdebug

xdebug
xdebug support => enabled
xdebug.auto_trace => Off => Off
xdebug.collect_includes => On => On
xdebug.collect_params => 0 => 0
xdebug.collect_return => Off => Off
xdebug.collect_vars => Off => Off
xdebug.default_enable => On => On
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
...
и т.д.


Счастливой отладки!

P.S.: можно удалить добавленную строчку из ~/.bashrc
Tags:
Hubs:
Total votes 15: ↑5 and ↓10-5
Comments10

Articles