Для разработки PHP-приложений я использую XAMPP на работе и дома. Конечно на Линукс можно поставить LAMP с помощью одной команды в консоли, но я привык к XAMPP на Windows и теперь использую его версию для Linux - LAMPP. Поскольку я решил полностью отказаться от проприетарного софта, я заменил Zend Studio на PDT - среду разработки для PHP на основе Eclipse, а Zend Debugger на XDebug.

1. Скачиваем XAMPP и устанавливаем его:
sudo tar xvfz xampp-linux-1.6.8a.tar.gz -C /opt
Скачаем и установим Development package. Он нам понадобится при компиляции модуля xdebug. Устанавливается он так же как и собственно XAMPP:
sudo tar xvfz xampp-linux-devel-1.6.8a.tar.gz -C /opt
Чтобы запустить LAMPP, выполним команду:
sudo /opt/lampp/lampp start
2. Скачиваем PDT с официального сайта eclipse.org/pdt. Я скачал версию All-in-one, т.е. полностью Эклипс с необходимыми плагинами. Чтобы запустить PDT, его нужно просто распаковать (например в папку /opt) и запустить /opt/eclipse/eclipse.
Однако тут я столкнулся с трудностью. PDT отказался запускаться наотрез. Немного погуглив, я понял, что он не запускается, потому что у меня 64-битная система, а PDT - 32-битный. В таком случае нужно установить 32-битный JDK и попросить PDT использовать именно этот JDK.
Устаналиваем Джаву:
sudo apt-get install ia32-sun-java6-bin
После установки может оказаться, что 32-битная виртуальная машина стала виртуальной машиной Java по умолчанию. Но мы же не для того ставили 64-битную систему, чтобы использовать на ней 32-битное ПО. Исправляется следующим образом:
sudo update-alternatives --config java
Чтобы PDT использовал нужную версию Java, напишем скрипт для запуска Eclipse eclispe.sh
[sourcecode language='php']
#! /bin/sh
PATH=/usr/lib/jvm/ia32-java-1.5.0-sun/bin:$PATH
/opt/eclipse/eclipse
[/sourcecode]
Чтобы скрипт можно было запускать, нужно установить права таким образом
chmod 0755 eclipse.sh
3. Скачиваем исходники XDebug со страницы http://www.xdebug.org/

Теперь начинается самое интересное - нам нужно скомпилировать php-модуль из исходников. Распакуем архив с исходниками и перейдем в папку, куда они были распакованы. Для компиляции нужно выполнить следующие команды
[sourcecode language='php']
/opt/lampp/bin/phpize
./configure --enable-xdebug --with-php-config=/opt/lampp/bin/php-config
make
[/sourcecode]
Если команда phpize вернула что-то типа:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
то необходимо установить программу autoconf:
[sourcecode language='php']
sudo aptitide install autoconf
[/sourcecode]
Скопируем полученный модуль в папку PHP-расширений XAMPP
sudo cp modules/xdebug.so /opt/lampp/lib/php/extensions
И тут я опять столкнулся с проблемой. При запуске XAMPP ругался на модуль xdebug.so. Оказалось, что модуль скомпилированный в 64-битной системе не работет с 32-битным PHP. Я не придумал ничего лучшего, как скомпилировать модуль на 32-битной системе. У меня как раз была виртуальная машина с Ubuntu 8.10beta i386, и я в этой системе успешно скомпилировал модуль и положил его в папку /opt/lampp/lib/php/extensions.
4. Правим php.ini
Добавим следующую строчку в раздел [PHP] файла /opt/lampp/etc/php.ini
zend_extension=/opt/lampp/lib/php/extensions/xdebug.so
А в конец файла добавим новый раздел [xdebug]
[sourcecode language='php']
[xdebug]
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
zend_extension_ts="/opt/lampp/lib/php/extensions/xdebug.so"
[/sourcecode]
5. Перезапускаем XAMPP
sudo /opt/lampp/lampp restart
6. Вот собстенно и все, можно дебажить :)
Как дебажить, я описывать не буду. По ссылкам, которые я указал ниже, можно найти подробные инструкции со скриншотами.
По моим субъективным ощущениям могу сказать, что xdebug значительно быстрее zend'а. Говорят, что в Зенде тормозит профайлер, но в свое время у меня без профайлера его запустить не получалось.
А что же в Windows?
А в Windows все почти так же, только компилировать ничего не надо. На сайте xdebug доступен уже скомпилированный dll для Windows, который надо положить в папки xampp/php/ext и xampp/php/extensions. Еще обратите внимание, что php.ini находится в странном месте xampp/apache/bin/php.ini. Если вы пользуетесь php-switch для переключения версий php, советую найти все файлы php*.ini в папках xampp и внести правки.
Источники:
Комментариев нет:
Отправить комментарий