Удаленная отладка PHP: XDebug не может подключиться к клиенту JetBrains php Storm

Мне нравится удаленная отладка для работы со следующей конфигурацией программного обеспечения:

Win 7 Pro 64-бит WAMP Server 2.2 (32 бит) вкл. Apache 2.2.22, PHP 5.4.3, XDebug php_xdebug-2.2.1-5.4-vc9.dll JetBrains PHPStorm 4.0.3

1.) WAMP запущен и работает, мой сайт можно найти под localhost / fox /

2.) У PHP Storm есть проект, где есть сопоставление между моими исходными файлами и псевдонимом apache localhost / fox

2.) Я установил расширение PHP XDebug и добавил следующие строки в мой php.ini

[xdebug] zend_extension="c:/wamp/bin/php/php5.4.3/zend_ext/php_xdebug-2.2.1-5.4-vc9.dll" xdebug.remote_enable=On xdebug.remote_host="localhost" xdebug.remote_port=9000 xdebug.remote_connect_back=On xdebug.remote_autostart=On xdebug.profiler_enable=On xdebug.profiler_enable_trigger=off xdebug.profiler_output_name=cachegrind.out.%t.%p xdebug.profiler_output_dir="c:/wamp/tmp" xdebug.remote_log="C:/wamp/tmp/xdebug.log" xdebug.remote_cookie_expire_time=6000 

Это должно настраивать XDebug удаленной отладки и обратный адрес.

Я проверяю уже мою установку здесь: xdebug.org/wizard.php

3.) Я настроил phpstorm, сначала я добавил локальный сервер

и затем проверил мои настройки здесь

http://www.bilder-hochladen.net/files/jrn0-2-c81e-jpg-nb.html

(я попробовал 127.0.0.1/fox как адрес сервера, а вместо этого вместо localhost)

hier мои настройки отладки: http://www.bilder-hochladen.net/files/jrn0-1-c4ca-jpg.html

Теперь я перезапускаю свой apache, я заглядываю в phpstorm, устанавливаю точку прерывания (красный), щелкаю функцию

 Run -> Start listen to PHP Debug Connections 

Телефонная трубка загорает на зеленый, что бы это ни было, но это позитивный сигнал для меня.

Когда я теперь запускаю свой php Script на локальном веб-сервере absolutley, ничего не происходит, программа работает над точкой прерывания и не останавливается.

В журнале Xdebuggers (C: /wamp/tmp/xdebug.log) я нахожу массу таких сообщений:

  I: Checking remote connect back address. I: Remote address found, connecting to ::1:9000. E: Could not connect to client. :-( Log closed at 2012-07-19 14:21:08 

Где-то в Интернете я нашел подсказку, что брандмауэр Windows может заблокировать связь, поэтому я отключил его, но это не помогло.

Я также пытался подключиться через telnet к localhost: 9000, и я получил ответ от phpstorm.

У кого-нибудь есть идея, где искать ошибку или что еще я мог бы попытаться заставить этот материал работать?

Большое спасибо за вашу помощь заранее, Майкл

ps Извините, мне не разрешено размещать более двух ссылок, потому что я новичок здесь, поэтому нет гиперссылки на мастер xdebug.

Может быть, немного поздно, но …

Здесь у вас есть противоречие с вашими настройками:

 xdebug.remote_host="localhost" xdebug.remote_connect_back=On 

Эти две настройки перекрываются. Каков ваш случай?

a) Вы хотите отлаживать приложение только из одного источника (например, вы разрабатываете и развертываете на localhost ).

Затем вы почти закончили: вы уже определили, что удаленный хост является localhost . Комментируйте строку remote_connect_back; )

b) Вы хотите принять несколько источников разработки (например, несколько машин отлаживают приложение в той же сети).

Затем строка remote_host переопределяется, поэтому вы можете удалить или прокомментировать ее.

Это фактически конфигурация, которую вы сейчас используете. Итак, что в этом плохого? Проверьте этот сценарий:

 <? echo $_SERVER['REMOTE_ADDR']; 

Выход будет ::1 . Ну, хост, который делает запрос на ваш сервер Apache, является localhost . И Apache разрешает это имя как адрес IPv6 ::1 , что, в конце концов, не так. Но Xdebug не может подключиться к IPv6-адресу. Видеть:

 I: Remote address found, connecting to ::1:9000. E: Could not connect to client. :-( 

Поэтому наша цель будет заключаться в том, чтобы Apache разрешить localhost предпочтительно на IPv4-адрес (без отключения поддержки IPv6 на уровне ОС или на уровне Apache). Это может быть достигнуто путем добавления в ваш файл hosts следующей строки:

 127.0.0.1 localhost 

Этот простой взлом сделает трюк! Теперь localhost всегда будет предпочтительно разрешен как IPv4-адрес, а ::1 все равно будет вполне понятным.

Вы можете попытаться отключить IPV6 http://support.microsoft.com/kb/929852 , я думаю, что это проблема, когда вы пытаетесь подключиться.

Удаленный адрес найден, подключившись к :: 1: 9000.

Система пытается подключиться к IPV6, и я думаю, что XDebug разрешен только для IPV4.

Где именно ваша точка останова в вашем коде? Я знаю, что XDebug может быть забавным.

Для PHP 5.4 ваши настройки Xdebug должны быть

 [XDebug] zend_extension="<path to php_xdebug.dll>" xdebug.remote_enable=1 xdebug.remote_port="<the port for XDebug to listen to>" (the default port is 9000) xdebug.profiler_enable=1 xdebug.profiler_output_dir="<AMP home\tmp>" 

http://www.jetbrains.com/phpstorm/webhelp/configuring-xdebug.html

Если вы используете хром, установите следующий плагин: https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc после установки установки вашего IDE-ключа как в плагине, так и в phpstorm

Я смог запустить его только с этими двумя дополнительными строками в файле php.ini:

 [XDebug] ;; Only Zend OR (!) XDebug zend_extension = C:\php\ext\php_xdebug-2.2.1-5.3-vc9.dll xdebug.remote_enable=true 

Каждый раз, когда вы хотите отлаживать, вы начинаете с включения «отладки, профилирования и трассировки» в этом плагине, а затем вы запускаете свой код в режиме отладки из phpstorm. Убедитесь, что ваши настройки проекта в phpstorm верны