Eclipse xdebug сессия никогда не завершается - PullRequest
52 голосов
/ 03 марта 2010

Я пытаюсь заставить xdebug работать с eclipse (3.5) / php (в xampp windows 7).Я проверил, включен ли xdebug в php - у меня есть причудливый вывод, и мой phpinfo показывает все вещи xdebug.Я включил удаленную отладку и набрал IP-адрес локальной сети на моей машине eclipse.

Когда я говорю eclipse об отладке, он запускает браузер и передает параметры URL отладки.Это выглядит нормально.

Однако в перспективе отладки затмения он показывает «запуск myproject» 57% «ожидание сеанса xdebug».Он сидит там навсегда.

Я отключил брандмауэр Windows на обеих машинах.

Я пытался включить неявный сброс.

Есть идеи?

Ответы [ 27 ]

62 голосов
/ 12 октября 2010

У меня тоже была эта проблема, и мне не хватало этой строки в файле php.ini:

xdebug.remote_enable = On
14 голосов
/ 25 февраля 2011

Убедитесь, что вы определили zend_extention с помощью ABSOLUTE пути в php.ini:

например: zend_extension=D:\SANDBOX\server\php\php_xdebug-2.1.0-5.3-vc6.dll

Я отлаживаю локальный проект в Windows. Пока мне не нужно xdebug.remote_enable = On.

Предложения, если сеанс Xdebug не запускается (зависает на 57%), убедитесь, что:

  • zend_extention директива установлена ​​с абсолютным путем и отладка загружена, используйте phpinfo() для проверки
  • межсетевой экран не блокирует порт по умолчанию 9000 или Eclipse.
  • другое приложение не использует порт (выполните: netstat -an |find /i "listening" из командной строки)

Если вам нужно настроить другой порт, используйте в php.ini:

xdebug.remote_enable = on
xdebug.remote_port = XXXX 

и исправьте настройки Xdebug в Eclipse:

XDEBUG settings in Eclipse

9 голосов
/ 11 мая 2011

У меня была такая же проблема, и я исправил ее, изменив порт на XDebug (теперь использующий порт 9001).

Вот мой контент php.ini:

zend_extension ="C:\...\EasyPHP-5.3.3\php\ext\php_xdebug-2.dll"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.remote_mode=req
xdebug.remote_autostart=0

Также проверьте файл журнала apache и убедитесь, что у вас нет следующего Предупреждающего сообщения:

PHP Предупреждение: Xdebug ДОЛЖЕН быть загружен как расширение Zend в Unknown в строке 0
Предупреждение : Xdebug ДОЛЖЕН быть загружен как расширение Zend в Неизвестно в строке 0

Если вы это сделаете, откройте файл php.ini и прокомментируйте с помощью «;» extension=php_xdebug-2.dll строка:

;extension=php_xmlrpc.dll
extension=php_xsl.dll
**;extension=php_xdebug-2.dll**
;/PHPExt
6 голосов
/ 30 июля 2013

У меня была такая же проблема с Zend Studio. Я заметил, что сессия xdebug не запускалась должным образом. Я передал эту строку в URL один раз, и с тех пор это сработало.

http://localhost/myalias/?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13750956767461

Я уверен, что это вопрос конфигурации где-то в IDE.

6 голосов
/ 04 января 2012

После трехчасовой борьбы и опробования каждого решения на форумах я обнаружил, что простой трюк заключался в удалении кавычек при указании пути для библиотеки Xdebug в zend_extension в php.ini . Я использую XAMPP (PHP 5.3.6 + Apache 2.2) + Eclipse Indigo + PDT + Xdebug 2.1.2 в Windows Vista.

Вот точная конфигурация, которая работала для меня -

zend_extension=C:\xampp\php\ext\php_xdebug-2.1.2-5.3-vc6.dll
#Note that the path above is not in quotes
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir=C:\xampp\tmp

Я использовал порт 9001, чтобы он не конфликтовал с 9000 в случае, если он уже используется другой программой. Убедитесь, что это совпадает с портом в Eclipse> Preferences> PHP> Debug> Xdebug. Также перезапустите apache после редактирования php.ini.

Как только я добавил это в php.ini, все заработало как мороженое.

3 голосов
/ 02 августа 2011

проверьте эту ссылку:

http://xdebug.org/docs/remote

Существует один сеанс о новых плагинах для Chrome и Firefox, и они отлично работают.

3 голосов
/ 27 мая 2010

Я понял, что порт TCP используется, и именно поэтому он завис. Я изменил порт в настройках php.ini и eclipse.

2 голосов
/ 13 сентября 2012

Проверьте правильность настроек веб-браузера Eclipse.

Окно / Настройки / Общие / Веб-браузер / Внешние веб-браузеры / Редактировать настройки

В моем случае путь к бинарному файлу внешнего веб-браузера был неверным. Он сказал "/ usr / bin / mozilla" вместо "/ usr / bin / firefox". Не знаю, как появился этот параметр, но после его изменения наконец-то открылось окно браузера Firefox.

1 голос
/ 01 марта 2017

Для меня добавление конфигураций [xdebug] , предложенных другими, в файл php.ini, сохраненный по следующему пути C: \ wamp64 \ bin \ apache \ apache2.4.23 \ bin, помог.По сути, это символическая ссылка, которая указывает / ссылается на файл phpForApache.ini в вашей соответствующей папке версии php, которая устанавливается вместе с wamp64, например php5.6.25.

В двух словах, добавив следующие строки phpForApache.ini , чтобы помочь мне -

    zend_extension = c:\wamp64\bin\php\php5.6.25\ext\php_xdebug-2.5.1-5.6-vc11-x86_64.dll
    xdebug.remote_enable=On
    xdebug.remote_host="localhost"
    xdebug.remote_port=9000
    xdebug.remote_handler="dbgp"

Надеюсь, это поможет

1 голос
/ 27 июля 2014

Я заглянул в журнал apache и было много строк с ошибкой "файл не найден".

Выполнить -> Отладка конфигураций -> PHP-страница -> Your_configuration

Я снял отметку auto generate и установил имя файла на index.php.

Похоже, что в случае любой ошибки, которая препятствует нормальному функционированию затмения, возникает "ожидание сеанса"

...