2013-02-15 3 views
6

Я уже несколько часов бил головой об этом.XDebug перестала работать в PHPStorm

Я вернулся, чтобы выполнить некоторую работу в PHPStorm после того, как не использовал его через пару недель, и по какой-то причине отладка больше не работает. Он работал, но теперь этого не происходит, и я понятия не имею, что происходит.

Я работаю в Windows, используя IIS, версию PHP 5.3.8. XDebug установлен, и я установил конфигурацию в PHP.ini в соответствии с обычными инструкциями.

Когда я запускаю phpinfo(), все выглядит нормально (т. Е. XDebug есть).

Я перепрограммировал различные настройки, загрузил несколько более новую версию XDebug, чем я использовал (Xdebug v2.2.1), но ничего похожего не влечет за собой.

Может кто-нибудь, пожалуйста, дайте мне несколько подсказок относительно того, что я могу посмотреть дальше?

UPDATE:

Я провел несколько часов бить головой против этого, и, похоже, не получили гораздо больше. XDebug установлен и загружен, согласно phpinfo(). Я включил лесозаготовок, но это на самом деле не сказать мне много, за исключением, что XDebug действительно подключения ...

Log opened at 2013-02-17 04:13:07 
I: Connecting to configured address/port: localhost:9000. 
I: Connected to client. :-) 
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///C:/web/dbg/index.php" language="PHP" protocol_version="1.0" appid="6912" idekey="PHPSTORM"><engine version="2.2.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init> 

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response> 

Log closed at 2013-02-17 04:13:07 

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

+2

Брандмауэр блокирует входящие соединения (это xdebug, который подключается к IDE)? Неверный порт настроен? Неверный php.ini отредактирован (или загружен PHP)? – LazyOne

+0

Я думаю, что это правильный php.ini, потому что я вижу из phpinfo(), что XDebug загружен, и это версия, которую я только что установил. Может быть, это брандмауэр? Я бы подумал, что, поскольку я просто подключаюсь к локальной машине, ему не нужно проходить через какой-либо брандмауэр, но я буду изучать это. Есть ли способ получить XDebug для регистрации того, что происходит? – xtempore

+0

http://xdebug.org/docs/all_settings#remote_log – CrazyCoder

ответ

18

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

Я решил попробовать другой порт, 9001 вместо 9000 по умолчанию, и он РАБОТАЕТ!

Я теперь понимаю, что я недавно установил Twonky (для потокового видео к телевизору), и когда я проверил настройки, там был ... порт 9000.

+1

Послушал меня, что долгое время проверял, что что-то еще слушал на порте 9000 ... Ran 'sudo lsof -i: 9000' и ​​убил этот процесс. – allejo

+0

В моем случае виновником был _php-fpm_ (PHP FastCGI Process Manager). Его порт по умолчанию - 9000. – Glutexo

6

Если бы тот же вопрос, после обеда - нашли это вопрос, а также несколько других вопросов SO, поэтому я решил опубликовать решение, которое исправило его для меня.

Мне не удалось сопоставить файловую систему. Что странно, потому что я видел, как PHPStorm подсказывает мне, когда они уже отсутствовали.

enter image description here

Надеюсь, это поможет кому-то в будущем :)

+0

Мне удалось заставить это работать на одном экране, отключив сопоставления пути. – dwenaus

0

Новые версии PhpStorm имеют проверку Debugger. Официальный блог PHPStorm has a writeup об этой функции, которая может помочь вам разобраться.

Один snafu для меня, когда я настроил окно с настройкой php-fpm, - это то, что php-fpm работает и на порте 9000 по умолчанию, поэтому мне пришлось изменить настроенный порт в настройках php.ini и PHPStorm на что-то вроде 9001.

для чего это стоит, мой текущий php.ini настройки для Xdebug:

[xdebug] 
zend_extension="/the/path/to/xdebug.so" 
xdebug.file_link_format="txmt://open?url=file://%f&line=%l" 
xdebug.remote_enable=1 
xdebug.remote_autostart=On 
xdebug.remote_port=9001 
xdebug.profiler_enable_trigger=1 
xdebug.max_nesting_level=250 
0

у меня была такая же проблема!Наконец, я понял, что все мои настройки были правильными, но со стороны браузера я не включил отладку в браузере Chrome. Каждый браузер имеет свой собственный способ включения отладки для начала работы.

+0

Есть один способ для всех браузеров - добавить "?XDEBUG_SESSION_START = 1 "на адрес. – bogatyrjov

0

У меня была такая же проблема, и я решил ее, удалив все часы, а затем перезагрузите PhpStorm

0

Я была такая же проблема, и я попытался все решения я мог бы найти в SO и в других местах (проверено, что оба phpStorm и Xdebug находятся на одних и тех же портах, проверяют, что у меня было сопоставление серверов в файловой системе, переустановить Xdebug и т. д.), но в конечном итоге проблема заключалась в том, что мы запускаем сайт на внутреннем сервере, а кто-то из ИТ-пользователей IP-адрес моего компьютера на адрес, который отфильтровывается из разрешенных адресов, которые могут быть подключены к этому серверу. Вот почему phpStorm начал игнорировать точки останова от Xdebug.

Надеюсь, это поможет кому-то в будущем и спасет его много часов.

1

Была такая же проблема после обновления El Capitan. Первый намек на то, что я использовал, - Run -> Проверка отладки веб-сервера. Этот инструмент из PHPStorm дал мне подсказку xdebug.remote_host Я использую v-hosts, и жаловал localhost на неправильное значение. Поэтому я обновил xdebug с помощью xdebug.remote_connect_back=On, и это сработало!

+0

Ваш ответ помогает мне, спасибо. После перехода на PHP 7 для PHP-модулей были созданы новые файлы конфигурации. Поэтому все мои настройки (в том числе' xdebug.remote_connect_back = On') не были применены. –

-1

Установлено, что если файл журнала xdebug не доступен для записи, он может не работать. Всегда лучше установить xdebug.remote_log и сделать его доступным для записи.

+0

уже написал, что почему xtempore переносит вопрос с информацией журнала –

0

Я тоже решил сам, потому что PHP-Storm и PHP-FPM прослушивают один и тот же порт ... просто убейте весь порт php-fpm. enter image description here

Смежные вопросы