#php #xdebug
#php #xdebug
Вопрос:
Я часами занимался этим, и в какой-то момент он действительно работал на тестовой странице, но я не знаю, что произошло с тех пор, потому что он перестал работать. Я часто получаю эту ошибку:
Ошибка: сбой загрузки c:wampbinphpphp5.6.19extphp_xdebug-2.4.1-5.6-vc11.dlln ‘
Это странно, потому что он определенно загружает файл, когда я добавляю это в свой файл php.ini:
zend_extension = "c:\wamp\bin\php\php5.6.19\zend_ext\php_xdebug-2.4.1-5.6-vc11.dll"
он сообщает, что он действительно включен. В файле php.ini я заметил это: В учебном пособии, которое я прочитал, файл xdebug.ini появился в одном из этих полей:
Вот полные настройки в моем файле php.ini:
затем проверьте phpinfo(), и теперь я вижу раздел для xdebug:
Также, когда я запускаю
if (xdebug_is_enabled()) { echo ‘включено’; }
[xdebug]zend_extension = "c:\wamp\bin\php\php5.6.19\zend_ext\php_xdebug-2.4.1-5.6-vc11.dll"
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_autostart=1
xdebug.remote_log= "C:\wamp\tmp\xdebug.log"
xdebug.profiler_enable=0
xdebug.profiler_output_dir = "C:\wamp\tmp"
xdebug.collect_params = 4
xdebug.collect_return = on
xdebug.collect_vars = on
xdebug.show_local_vars = 3
Честно говоря, я понятия не имею, что делает половина этих параметров. Вот настройки для моего возвышенного проекта:
"settings":
{
"xdebug":
{
"url": "localhost/xdebug_test"
},
"sublime-view-in-browser": {
"baseUrl": "http://localhost/xdebug_test",
"basePath": "C:\wamp\www\xdebug_test"
}
}
и внутри XDebug.sublime.settings я добавил туда URL-адрес:
"url": "http://localhost/xdebug_test"
Вот индексный файл в папке xdebug_test:
но когда я запускаю отладчик и запускаю браузер, он мгновенно повторяет тест, и в консоли xdebug ничего не появляется: вчера он работал именно с этим файлом, я не знаю, что могло измениться с тех пор.
Есть ли способ диагностировать, что с ним не так? Я так не думаю, потому что это происходит не только в sublime text, вот что происходит, когда я запускаю PHP-скрипт в терминале:
РЕДАКТИРОВАТЬ: я только что заметил в phpinfo(), что для ключа IDE установлено значение PHPSTORM. Это странно, потому что в файле настроек xdebug он установлен следующим образом:
"ide_key": "sublime.xdebug",
Может ли это быть проблемой? Могу ли я что-нибудь сделать здесь для дальнейшей диагностики проблемы?
Ответ №1:
Вы пытались изменить URL-адрес xdebug в настройках проекта?
"xdebug":
{
"url": "http://localhost/xdebug_test"
}
Комментарии:
1. Я просто попытался изменить его обратно на значение по умолчанию «url»: «» , это ничего не изменило.
2. Хорошо .. также попробуйте изменить xdebug.remote_host=»localhost» в php.ini
Ответ №2:
Что, если вы используете эту версию dll — https://xdebug.org/files/php_xdebug-2.4.1-5.6-vc11-nts.dll ? Постфикс «nts» означает «Не потокобезопасный».
И, конечно, вы можете использовать мастер XDebug, чтобы узнать, какая версия dll и какие настройки вам нужны — https://xdebug.org/wizard.php
Комментарии:
1. Я попробовал не потокобезопасную версию, и она вообще не работала, в phpinfo() ничего не появилось.
Ответ №3:
Ответ №4:
Я понял проблему, xdebug подключался к неправильному порту. Я нашел файл журнала C:/wamp/tmp/xdebug.log
и проверил последние сообщения, и там было множество строк, в которых говорилось то же самое:
Журнал открыт в 2016-10-21 16:09:25 I: Подключение к настроенному адресу / порту: localhost: 9001. E: Тайм-аут подключения к клиенту. 🙁 Журнал закрыт в 2016-10-21 16:09:26
Я подозревал, что проблема была в порту, я проверил php.ini
файл, и он был установлен на 9001
, затем я проверил Xdebug.sublime-settings
и заметил, что порт был установлен на 9000
. Я установил порт в php.ini на 9000, и теперь xdebug работает.
Я до сих пор не знаю, почему он выдает мне эти ошибки о невозможности загрузить расширение. Странно, потому что это определенно загружает их.