Настройка отладки Eclipse PDT (XDebug / Zend) - PullRequest
3 голосов
/ 11 марта 2012

У меня было чертовски много времени, когда я получал Eclipse для отладки моего приложения CakePHP. Я попытался прочитать несколько уроков (ни один из которых не был настолько хорош). Я пытался использовать Zend и XDebug.

Я даже не уверен, как именно я должен использовать эту вещь, как только она настроена правильно.

Я пытался установить точку останова в своем коде PHP, щелкнув правой кнопкой мыши файл PHP в текстовом редакторе и выбрав «отладка веб-приложения php», но он никогда не достиг точки останова. Он открывает браузер в затмении с некоторыми GET-параметрами, прикрепленными к моему обычному URL:

? Debug_host = 192.168.1.2% 2C127.0.0.1 & start_debug = 1 & debug_port = 10000 & original_url = HTTP% 3A% 2F% 2Flocalhost% 2Fparticipants & send_sess_end = 1 & debug_stop = 1 & debug_start_session = 1 & debug_no_cache = 1331422177353 & debug_session_id = 1000

Одна вещь, в которой я не был уверен в свойствах отладки php моего проекта, это исполняемое поле PHP. Для него было автоматически установлено значение «none», поэтому мне пришлось создать запись, указывающую на «/ usr / bin / php». Может быть, это не правильно?

Я зашел так далеко, что создал простое приложение с одним php-файлом, в котором было всего несколько операторов echo. Я также не могу заставить отладчик достигнуть точки останова в этом.

Вот мой phpinfo (): https://sites.google.com/site/kylephpinfo/phpinfo.html?attredirects=0&d=1

У меня никогда не было столько проблем с тем, чтобы заставить работать отладчик в моей жизни ..

Ответы [ 2 ]

6 голосов
/ 16 марта 2012

Судя по вашему php.ini, расширение отладчика не загрузилось.Обычно он отображается прямо под первым полем, как-то вроде with Xdebug v2.1.0, Copyright (c) 2002-2008, by Derick Rethans ...

Итак, первое, что вам нужно убедиться, это то, что PHP-ini вашего сервера настроен правильно.Найдите php.ini, на который указывает httpd.conf, и отредактируйте его, добавив что-то вроде этого:

zend_extension_ts=C:\php\ext\php_xdebug-2.1.0-5.3.0.dll
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"

Примечания:

  • ts означает потокобезопасность,поэтому убедитесь, что пакет, который вы получили для отладчика, также ts.
  • Настройка очень похожа в Linux / Mac и с расширением отладчика .so.
  • Самый простой способчтобы понять это правильно, вероятно, нужно настроить сервер, такой как XAMPP, который предоставляет совместимые расширения отладчика.

Как только вы запустите его, и php.info покажет загруженный xdebug (или Zend Debugger),вы готовы к работе.

Если ваш сервер установлен на локальном компьютере, самый простой способ - создать свой проект внутри htdocs.Это предотвратит любые проблемы с поиском исходного кода, когда отладчик пытается разрешить точки останова и когда PDT пытается разрешить нужный файл для открытия.(есть настройки path mapping, которыми вы можете манипулировать, но это избавит вас от хлопот).

Не смущайтесь отладкой исполняемых файлов PHP (отладчик PHP Script).Вам нужно запустить удаленную отладку (даже если она на той же машине).PHP Script предназначен только для простых PHP-скриптов, работающих как есть (не на сервере и не как CLI).

Надеюсь, что это поможет вам начать!:)

Обновление: после Php 5.3 нет необходимости использовать zend_extension_ts, вместо этого используйте zend_extension только как указано на Php.net http://php.net/manual/en/ini.core.php#ini.zend-extension

0 голосов
/ 16 марта 2012

Когда вы выполняете отладку, открывается ли вторая копия файла? Если это так, он выполняет удаленную версию для отладки, и вам нужно будет установить точку останова в этом файле.

...