Пошаговый дебаг PHP в Zend Studio (разбираемся с Ubuntu)
Давно была интересна эта тема, но руки никак не доходили до того, чтобы привести это в действие: научиться устраивать пошаговый дебаг в Zend Studio.
Итак, мне удалось настроить работу Zend Debugger в Linux Ubuntu и в Windows 7. В этой части статьи будет приведен пример настройки в Ubuntu.
Нехитрое дело посмотреть в инструкцию по установке. Сразу оговорюсь, отключите eAccelerator
, с ним Zend Debugger глючит.
Для начала качаем Studio Web Debugger с официального сайта. Также очень рекомендую поставить Studio Browser Toolbars для Firefox (качается оттуда же и сильно облегчает жизнь в последующем):
Zend Debugger является модулем для PHP. Далее некоторые нюансы для разных версий PHP могут различаться, в моем случае был рассмотрен PHP 5.3.3. Из архива достаем ZendDebugger.so, соответствующий нашей версии PHP и копируем его в директорию /usr/lib/php5/20090626+lfs
. Прописываем в php.ini
новый модуль и базовые настройки:
zend_extension = /usr/lib/php5/20090626+lfs/ZendDebugger.so
zend_debugger.allow_hosts = 192.168.1.1, 127.0.0.1
zend_debugger.expose_remotely = always
Опция allow_hosts
в данном случае позволяет нам дебажить с локального хоста и с машины 192.168.1.1
.
Запускаем Zend Studio. Выбираем место, в котором желаем остановиться во время выполнения (breakpoint). Делается это двойным щелчком по полоске левее номеров строк:
Breakpoint in Zend Studio
Производим следующие действия:
Далее открывается примерно такое диалоговое окно:
Указываем URL, по которому необходимо производить дебаг.
Если все успешно – то дебагер после запуска встанет на первой адекватной строчке index.php
(эту настройку тоже можно сменить, но не буду углубляться). Если дебагер не сработал, то, возможно, вам поможет мануал по установке, который я упомянул в самом начале. Основные горячие клавиши для работы с дебагом можно увидеть во всплывающих подсказках на кнопках управления непосредственно дебагом.
Таким образом, мне удалось запустить пошаговый дебаг в Zend Studio. Буду рад, если кому-то это сможет пригодиться.