ПРОБЛЕМА: в настоящее время я не могу отладить php в NetBeans 8.2 RC в Windows 10. NetBeans показывает Ожидание подключения в правом нижнем углу и никогда не подключается.
Большинство уроков, которые я нашел, были написаны несколько лет назад:
- Статья о Codewall //2018...новейшая ?
- Учебное пособие Майкла Милетта // казалось тщательным, но с 2014 года
- сайт NetBeans // ссылается на php 5... ура!
- Учебник Роба Проуса //2010
Обратите внимание, что некоторые из них имеют разные инструкции о том, что должно быть в php.ini.
Материалы Xdebug
phpinfo()
перечисляет Xdebug как работающую версию 2.9.4 с ключом IDE: netbeans-xdebug, так что, по крайней мере, он распознается. соответствующая информация php.ini [XDebug]:
...
output_buffering=off
...
[XDebug]
zend_extension = "c:\xampp\php\ext\php_xdebug-2.9.4-7.4-vc15-x86_64.dll"
xdebug.idekey = netbeans-xdebug
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_autostart = 0
xdebug.remote_connect_back = 0
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_log="c:\xampp\tmp\xdebug.txt"
xdebug.remote_port = 9000
xdebug.show_local_vars = 9
xdebug.trace_output_dir = "c:\xampp\tmp"
; 3600 (1 hour), 36000 = 10h
xdebug.remote_cookie_expire_time = 36000
информация xdebug из phpinfo()
Выполняется 'netstat -an', пока netbeans ожидает подключения Обратите внимание на двустороннее соединение между 57418 и 9000
журнал ошибок xdebug
[10112] Log opened at 2020-07-27 15:33:34
[10112] I: Connecting to configured address/port: 127.0.0.1:9000.
[10112] E: Time-out connecting to client (Waited: 200 ms). :-(
[10112] Log closed at 2020-07-27 15:33:34
[10112] Log opened at 2020-07-27 15:33:47
[10112] I: Connecting to configured address/port: 127.0.0.1:9000.
[10112] I: Connected to client. :-)
[10112] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/xampp/apps/wordpress/htdocs/index.php" language="PHP" xdebug:language_version="7.4.0" protocol_version="1.0" appid="10112" idekey="netbeans-xdebug"><engine version="2.9.4"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2020 by Derick Rethans]]></copyright></init>
[10112] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
[10112] Log closed at 2020-07-27 15:33:51
[10112] Log opened at 2020-07-27 15:33:52
[10112] I: Connecting to configured address/port: 127.0.0.1:9000.
[10112] E: Time-out connecting to client (Waited: 200 ms). :-(
[10112] Log closed at 2020-07-27 15:33:52
[10112] Log opened at 2020-07-27 15:34:05
[10112] I: Connecting to configured address/port: 127.0.0.1:9000.
[10112] I: Connected to client. :-)
[10112] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/xampp/apps/wordpress/htdocs/index.php" language="PHP" xdebug:language_version="7.4.0" protocol_version="1.0" appid="10112" idekey="netbeans-xdebug"><engine version="2.9.4"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2020 by Derick Rethans]]></copyright></init>
php_xdebug-2.9.4-7.4-vc15-x86_64.dll была dll, рекомендованной xdebug.org/wizard, и находится в ожидаемом месте файла.
Конфигурация NetBeans
Поскольку я пытаюсь отладить плагин WordPress, у меня есть весь каталог «wordpress» в качестве моего проекта в NetBeans.
Источники:
Хм... Версия PHP установлена на 7.0, и я пытаюсь использовать 7.4... но он говорит, что версия PHP используется только для подсказок. Является ли это простым случаем «NetBeans 8.2 RC не поддерживает PHP 7.4»?
Выполнить настройку:
Любая помощь приветствуется. Заранее спасибо. РЕДАКТИРОВАТЬ: включить информацию xdebug из phpinfo(), результаты netstat и дамп xdebug.
Потенциально полезно После изменения поведения для повторного запуска браузера я заметил, что проект не загружался с флагом ?XDEBUG_SESSION_START=netbeans-xdebug, пока после я не нажму кнопку "Стоп". Мне это показалось странным, но я попытался запустить отладчик, нажать кнопку «Стоп» (чтобы запустить веб-сайт с флагом) и затем подключить отладчик. Это не сработало (NetBeans работает в режиме ожидания подключения, а Chrome — в режиме ожидания локального хоста). В конце концов Chrome загружается, но когда я пытаюсь начать переход к той части сайта, чтобы запустить php-код, который я пытаюсь отладить, он возвращается к «ожиданию локального хоста» со следующим дампом xdebug (он никогда не переходит не на главной странице):
[22340] Log opened at 2020-07-27 15:49:37
[22340] I: Connecting to configured address/port: 127.0.0.1:9000.
[22340] I: Connected to client. :-)
[22340] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/xampp/apps/wordpress/htdocs/index.php" language="PHP" xdebug:language_version="7.4.0" protocol_version="1.0" appid="22340" idekey="netbeans-xdebug"><engine version="2.9.4"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2020 by Derick Rethans]]></copyright></init>
phpinfo()
2.2) Может быть, NetBeans не может прослушивать порт TCP 9000? Проверьте с помощьюnetstat
или аналогичного, чтобы узнать, какой процесс использует его, когда IDE прослушивает входящие соединения. - person LazyOne   schedule 27.07.2020