Ответ 1
Во-первых, убедитесь, что он на самом деле не работает для вас, и вы не заметили. Я сделал это... убедил, что он не работает. Я потратил кучу времени, пытаясь заставить его работать, только чтобы найти, что все в порядке.
Посмотрите на строку состояния NetBeans. Если вы видите "netbeans-xdebug" и "running", то на самом деле он работает нормально. Вероятно, вы отключили опцию "Стоп на первой линии", и вы не ударили ни о каких контрольных точках, которые вы установили (если они есть). Это было бы причиной того, что вы видите страницу с небольшим или отсутствующим индикатором того, что отладчик фактически подключен.
Если вместо этого вы видите "Ожидание соединения (netbeans-xdebug)", а индикатор выполнения работает на велосипеде, то вы действительно не подключены. Откройте Инструменты | Параметры и перейдите на страницу PHP. На общей вкладке убедитесь, что "Порт отладчика" равен 9000, а "Идентификатор сеанса" - "netbeans-xdebug". Возможно, вы захотите проверить "Стоп на первой линии". Я этого не делаю, поскольку мне это немного раздражает. Я определенно гарантирую, что "Часы и оценка шаров" не проверяется. Этот параметр вызывает дестабилизацию NetBeans и отладчика. Если вам нужны часы, взломайте локальную переменную в код PHP, где она вам нужна, и вы увидите ее на вкладке "Переменные" при запуске отладчика. Также убедитесь, что файл (index.php) указан в проекте Run Configuration > Index File.
Поскольку вы видите xdebug в phpinfo()
, это конец. Просто убедитесь, что все значения выглядят разумно и что есть некоторая ссылка на файл cookie "XDEBUG_SESSION = netbeans-xdebug" где-то на этой странице. (Убедитесь, что в браузере отключены файлы cookie!)
Единственное, что нужно проверить, это проверить, работает ли какая-либо брандмауэр/программа безопасности, которая будет блокировать TCP/UDP локально (что было бы супер-нечетным, но не из сферы возможностей), или этот порт 9000 еще не используется другим приложением. По какой-то причине я использую другой номер порта в своей локальной настройке. Я не помню, как менял его, но я уверен, что единственная причина, по которой я столкнулся, - это если я столкнулся с конфликтом порта с чем-то другим.
Последнее: мы предположили, что вы используете NetBeans и веб-сервер на том же компьютере. Это общая конфигурация, но не единственная. Если ваш веб-сервер находится на другом компьютере, измените localhost на xdebug.remote_host=localhost
на IP-адрес компьютера, на котором работает NetBeans.
Еще одна вещь: при циклическом перерыве между итерациями, пока вы не увидите информацию xdebug в phpinfo(), перезапустите apache/php. После этого перезапустите NetBeans между итерациями. И верьте или нет, перезагрузите браузер.