Я пытаюсь заставить xdebug работать с eclipse (3.5) / php (на xampp windows 7). Я подтвердил, что xdebug включен в php – у меня есть причудливый вывод, и моя phpinfo показывает все файлы xdebug. У меня удаленная отладка, и я набрал IP-адрес lan на моей машине eclipse.
Когда я говорю eclipse для отладки, он запускает браузер и передает параметры отладочного URL-адреса. Это выглядит хорошо.
Однако в перспективе отладки eclipse он показывает «запуск myproject» 57% «ожидания сеанса xdebug». Он сидит там вечно.
Я отключил брандмауэр Windows на обеих машинах.
Я попытался включить скрытый флеш.
Есть идеи?
У меня тоже была эта проблема, и я пропустил эту строку в файле php.ini
:
xdebug.remote_enable = On
Убедитесь, что вы определили zend_extention с помощью пути ABSOLUTE в 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 в Unknown в строке 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 в 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> Отладка> 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
вашим и в дополнение к тому, что 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). Если это выглядит нормально, обсудите это , а затем проверьте, что у вас нет проблем с сетью.
Я не знаю, что это значит для вас или нет! Но вы попали в файл 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, и все работает как шарм 🙂
Этот поток помог мне разобраться с моей проблемой с 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%.
Он работал после двух изменений:
Если 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
(попробуйте несколько комбинаций, пока вы не заработаете)
В этой программе используется движок языка Zend Scripting Language: 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 Dialog Project | Недвижимость | 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, сбросил его в / php56 / 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».