Ответ 1
У меня тоже была эта проблема, и я пропустил эту строку в файле php.ini
:
xdebug.remote_enable = On
Я пытаюсь заставить xdebug работать с eclipse (3.5)/php (на xampp windows 7). Я подтвердил, что xdebug включен в php - у меня есть причудливый вывод, и моя phpinfo показывает все файлы xdebug. У меня удаленная отладка, и я набрал адрес lan ip на моей машине затмения.
Когда я говорю eclipse для отладки, он запускает браузер и передает параметры отладочного URL-адреса. Это выглядит нормально.
Однако в перспективе отладки eclipse он показывает 'запуск myproject' 57% ', ожидающий сеанса xdebug'. Он сидит там навсегда.
Я отключил брандмауэр Windows на обеих машинах.
Я попытался включить неявный флеш.
Любые идеи?
У меня тоже была эта проблема, и я пропустил эту строку в файле php.ini
:
xdebug.remote_enable = On
Убедитесь, что вы определили zend_extention в АБСОЛЮТНО в php.ini
:
например: zend_extension=D:\SANDBOX\server\php\php_xdebug-2.1.0-5.3-vc6.dll
Я отлаживаю локальный проект в Windows. Пока мне не нужен xdebug.remote_enable = On
.
Предложения, если сеанс Xdebug не запускается (зависает с 57%), убедитесь, что:
zend_extention
установлена с абсолютным путем и отладка загружена, используйте phpinfo()
для проверкиnetstat -an |find /i "listening"
из командной строки)Если вам нужно настроить использование другого порта в php.ini
:
xdebug.remote_enable = on
xdebug.remote_port = XXXX
и исправьте настройки Xdebug в Eclipse:
У меня была та же проблема, и я исправил ее, изменив порт на XDebug (теперь используя порт 9001).
Вот мой контент php.ini:
zend_extension ="C:\...\EasyPHP-5.3.3\php\ext\php_xdebug-2.dll"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.remote_mode=req
xdebug.remote_autostart=0
Также проверьте файл журнала apache и убедитесь, что у вас нет следующего предупреждающего сообщения:
PHP Предупреждение: Xdebug ДОЛЖЕН быть загружен как расширение Zend в Unknown в строке 0
Предупреждение: Xdebug ДОЛЖЕН быть загружен как расширение Zend в Неизвестно в строке 0
Если вы это сделаете, откройте файл php.ini и прокомментируйте его с помощью;; строка extension=php_xdebug-2.dll
:
;extension=php_xmlrpc.dll
extension=php_xsl.dll
**;extension=php_xdebug-2.dll**
;/PHPExt
После трехчасового боя и опробования каждого решения на форумах я узнал, что простой трюк состоял в том, чтобы удалить кавычки, указав путь в DLL Xdebug в zend_extension strong > в php.ini. Я использую XAMPP (PHP 5.3.6 + Apache 2.2) + Eclipse Indigo + PDT + Xdebug 2.1.2 в Windows Vista.
Вот точная конфигурация, которая сработала для меня -
zend_extension=C:\xampp\php\ext\php_xdebug-2.1.2-5.3-vc6.dll
#Note that the path above is not in quotes
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir=C:\xampp\tmp
Я использовал порт 9001, чтобы он не столкнулся с 9000, если он уже используется другой программой. Убедитесь, что это соответствует порту в Eclipse > Предпочтения > PHP > Отладкa > Xdebug тоже. Кроме того, перезапустите apache после редактирования php.ini.
Как только я добавил это в php.ini, все работало, как мороженое.
У меня была такая же проблема с Zend Studio. Я заметил, что сеанс xdebug не запускался должным образом. Я передал эту строку в URL-адрес один раз, и с тех пор он работал.
http://localhost/myalias/?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13750956767461
Я уверен, что это вопрос конфигурации где-то в среде IDE.
Я понял, что порт TCP используется, и именно поэтому он висел. Я изменил порт в настройках php.ini и eclipse.
проверьте эту ссылку:
Существует один сеанс о новых плагинах для chrome и firefox, и они работают нормально.
Проверьте правильность настроек веб-браузера Eclipse.
Окно/Настройки/Общие/Веб-браузер/внешние веб-браузеры/Изменить настройки
В моем случае путь к двоичному файлу внешнего веб-браузера был неверным. Он сказал "/usr/bin/mozilla" вместо "/usr/bin/firefox". Не знаю, как эта настройка появилась, но после ее изменения наконец появилось окно браузера Firefox.
Я просмотрел журнал apache и было много строк с ошибкой файла, не найденной.
Запуск → Конфигурации отладки → Веб-страница PHP → Your_configuration
Я снял флажок auto generate
и установил имя файла index.php
.
Кажется, что в случае любой ошибки, которая препятствует нормальному функционированию затмения, это "ожидает сеанса"
У меня была такая же проблема. Мои конфиги были равны вашим и помимо xdebug.remote_enable = On
в файле php.ini также добавляли следующее:
xdebug.remote_connect_back=1
это позволяет удаленную отладку multihost, в качестве альтернативы вы можете определить IP-адрес хоста.
xdebug.remote_host=IP_ADDRESS
Да, проверьте статистику сети/порта. В моем случае я использую vmware fusion на mac, а процесс vmware-natd забивает процессор (блокировка на открытом порту, который я предполагаю), чего я не заметил. php.ini был совершенно прав, пришлось запустить его, чтобы заставить его работать снова:
sudo "/Library/Application Support/VMware Fusion/boot.sh" --restart
Итак, сначала проверьте файл php.ini(или xdebug.ini). Если это выглядит нормально ala это обсуждение, проверьте, не возникли ли у вас проблемы с сетью.
Я больше не знаю, что это значит для вас или нет! Но вы попали в файл PHP (anything.php) с правильным параметром отладки, что-то вроде XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=12882809194391
.
Люди часто ошибаются, чтобы попасть в файл HTML с параметрами отладки, которые заставляют Eclipse висеть на сессии xdebug
У меня была аналогичная проблема, и оказалось, что я использую неправильную DLL. Надеюсь, что это поможет кому-то в будущем.
У меня был такой же симптом. Однако моя проблема заключалась в том, что я установил xdebug.remote_host = ""
Я сделал это, потому что я использую виртуальные хосты apache, чтобы устранить необходимость в localhost
. Тем не менее, я изменил его на xdebug.remote_host = "localhost"
а затем измените мой apache/etc/hpppd-vhosts.conf, чтобы указать localhost на мой корень c:\web.
Для меня эти симптомы были вызваны брандмауэром Windows (Win7 Pro). Мне нужно было явно разрешить eclipse передавать брандмауэр. Я сделал это через диалог в разделе "Панель управления\Все элементы панели управления\Брандмауэр Windows\Разрешенные программы".
Это может быть не полезно всем, но... при попытке отладки удаленных хостов всегда помните маршрутизатор DSL! (или любой маршрутизатор по пути) Я потратил часы, пытаясь найти решение, когда заметил, что все, что мне нужно было сделать, это активировать переадресацию портов (порт 9000) на моем Linksys, и все работает как шарм:)
Если Netweaver/Eclipse
не удается подключиться к XDebug
, вы можете проверить журналы Apache
для вхождений чего-то типа: Cannot load Xdebug - it was built with configuration API220090626,TS,VC6, whereas running engine is API220090626,TS,VC9
[Fri Jun 01 18:38:05 2012] [notice] Child 3404: Child process is running
Чтобы исправить это, выберите правильную версию двоичного кода XDebug
с веб-сайта XDebug
(попробуйте несколько комбинаций, пока вы не заработаете)
Этот поток помог мне разобраться в моей проблеме с MAMP на OSX с Eclipse. После перехода на MAMP 2.1.1 из версии 1.x мне не удалось заставить xdebug работать в eclipse. Он висел на уровне 57%.
phpinfo показала, что расширение xdebug было нормально загружено, и ошибок в журналах PHP или Apache не было.
Я только хотел отлаживать локально, но причина в том, что удаленная отладка не была включена. Добавление xdebug.remote_enable = true в шаблон MAMP PHP.ini и перезапуск MAMP решили проблему.
В моем случае приложение CLI работало нормально, но это было веб-приложение, которое застряло на 57%.
Он работал после двух изменений:
В этой программе используется движок языка Zend Scripting Language Engine: Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies с Xdebug v2.2.3, Copyright (c) 2002-2013, Derick Rethans
Я тоже столкнулся с той же проблемой. Я дважды проверил все настройки в php с выходом phpinfo()
и все было в порядке.
Проверьте команды этот вопрос, они очень полезны для отладки!
Я пробовал все возможные решения на этом посту, чтобы заставить xdebug работать на сайте, запущенном на Apache (http-порт 8000), безрезультатно. Затем я случайно заметил, что xdebug работал на другом сайте, который работал на порту 80. Как только я сменил другой сайт на порт 80, он, наконец, позволил мне его отладить.
Интересно, есть ли параметр, который может заставить Apache разрешить xdebug для других портов, а не только 80. У меня есть несколько сайтов, работающих в Apache, и я хотел бы отлаживать каждый из них без необходимости перенастраивать порты. У кого-нибудь была эта проблема раньше? или знает, как это исправить?
Если ваша конфигурация в порядке, просто удалите файл: YOUR_WORKSPACE/.metadata/.plugins/org.eclipse.core.resources/.root/.markers
Была ли такая же проблема с использованием Uniserver Zero XIII 13.2.0 (требуется установка с распределенным распределением MS VC12) и Eclipse Neon Release Candidate 3 (4.6.ORC3). Наш сайт использует phalcon, когда мы обнаружили проблему с phalcon.dll и php7.0, мы вернулись к php5.6. Мы проверили настройки xdebug выше, добавили zend_extension = $(US_ROOTF)/php56/extensions/php_xdebug.dll-- не подключались, точки останова.
Нашел предупреждение в верхней части проекта диалога Eclipse | Недвижимость | PHP | Отладка | Настройка параметров рабочей области... | Исполняемые файлы PHP | PHP56 (по умолчанию для рабочей области) | Редактировать | Отладчик | "Расширение XDebug не установлено. Пожалуйста, посетите http://xdebug.org...". Это сделало нас подозрительными относительно версии php_xdebug.dll(2.5.0) в Uniserver 13.2.0 php56. Я загрузил php_xdebug-2.4.1-vc11.dll, сбросил его в /php 56/extensions и PRESTO! Eclipse PHP Debugger работает!
Для меня добавление конфигураций [xdebug], предложенных другими, в файл php.ini, хранящийся в следующем пути C:\wamp64\bin\apache\apache2.4.23\bin. По сути, это символическая ссылка, которая указывает/ссылается на файл phpForApache.ini в вашей соответствующей папке версии php, которая устанавливается с помощью wamp64, например. php5.6.25.
Вкратце, добавив следующие строки phpForApache.ini, чтобы помочь мне -
zend_extension = c:\wamp64\bin\php\php5.6.25\ext\php_xdebug-2.5.1-5.6-vc11-x86_64.dll
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
Надеюсь, что это поможет
Вот еще один блог, в котором упоминается, как проверить правильность установки Xdebug или нет с помощью командной строки http://allcodeverything.blogspot.com/2012/07/code-debugging-with-xdebug-and-eclipse.html
Он упоминает об этом Если вы хотите выяснить, все ли работает хорошо, вот хороший фрагмент кода, который вы будете запускать через CLI (интерпретатор командной строки, в основном вне Apache или браузера, просто чистый PHP) после того, как вы набрали следующие в вашем браузере: "http://localhost/dbgtest.php? XDEBUG_SESSION_START = ceable"
<?php
$address = "localhost";
$xdebug_port = 9000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $xdebug_port) or die('Unable to bind');
socket_listen($sock);
$debug_client = socket_accept($sock);
echo "connection established: $debug_client";
socket_close($debug_client);
socket_close($sock);
?>
Окно командной строки должно печатать что-то вроде "установлено соединение: Идентификатор ресурса №5".