Вопрос

Я без проблем использую eclipse-pdt в сочетании с xdebug и apache уже более года.Все работало безупречно, и я мог выполнять всю необходимую интерактивную отладку изнутри eclipse (используя свою машину в качестве сервера).

Теперь я перешел с apache на nginx (и поэтому PHP теперь работает не как сервис Apache, а как fast-cgi) и я не могу найти способ настроить eclipse для корректной работы с xdebug.Я не уверен, связана ли проблема с xdebug или с eclipse (или с обоими).

В конфигурации eclipse я уже изменил ссылку на файл конфигурации PHP на /etc/php5/cli/php.ini.


Попытки с php.ini версии 1

Со следующими php.ini файл

zend_extension=/usr/lib/php5/20060613/xdebug.so
  • Я вижу, что xdebug работает (например, если я выполняю var_dump() Я получаю версию xdebug, а не простую версию PHP)
  • Я не могу использовать интерактивную отладку из eclipse:браузер открывается и полностью загружает страницу с типичным URL-адресом, содержащим ...?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=..., но выполнение программы не останавливается на точках останова
  • В правом нижнем углу затмения я вижу подозрительное сообщение: "Запуск =put_the_name_of_my_project_here=:57%" который чередуется с «освежающее рабочее место» один.

Попытки с php.ini версии 2

Если я использую другую версию файла (так она и работала, пока я не переключился на nginx):

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req

Я вообще не могу получить доступ ни к одной странице моего сайта.


ПС:Дополнительные данные о моей машине:- ОПЕРАЦИОННЫЕ СИСТЕМЫ: GNU/Linux — Ubuntu 9.10 64 бит.- PHP: 5.2.10-2ubuntu6.3 с Suhosin-Patch 0.9.7;Zend Engine v2.2.0, Copyright (C) 1998-2009 Zend Technologies с XDebug v2.0.4 - Затмение: см. скриншот.

alt text

Это было полезно?

Решение

То, что сказал Бо, верно (не мог голосовать, так как я новичок!).

Обычно добавляем в /etc/php5/cgi/php.ini (или находим php.ini) такие строки, как

zend_extension = /PATH_TO/xdebug.so   ## <-- NOTE the absolute path, not relational (For ex on Windows: "C:\nginx-1.9.13\php\ext\php_xdebug-2.6.0RC2-7.0-vc14-nts.dll")
xdebug.remote_enable = on
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9900        ## <-- Yours will be probly 9000 or other..

делает свою работу.

Итак, после изменения

./php-fastcgi stop
./php-fastcgi start

Это сработало для меня.

Другие советы

xdebug и FastCGI используют один и тот же порт по умолчанию (9000).Измените порт XDebug в файле php.ini следующим образом:

xdebug.remote_port=9001

и обновите настройки IDE, чтобы использовать 9001.

Попробуйте перезапустить ваш php.Поскольку у вас установлен php-fastcgi, перезапуск nginx, похоже, не поможет.Когда я перезагрузил весь сервер, изменения вступили в силу.

У меня была та же проблема, и я ее решил.
В файле /etc/php5/apache2/php.ini добавлять:

[xdebug] xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req


В файле /etc/php5/cli/php.ini добавлять:

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req


Перезапустите Апач:

sudo service apache2 restart

Проблема в решении: "xdebug.remote_autostart = вкл.".Если вы установили в файле config "xdebug.remote_autostart = вкл.".Это заставит Xdebug запускать сеанс отладки для каждого запроса, выполняемого на этом сервере, без необходимости указывать в запросе необходимость сеанса отладки.

Вам нужны перемены

"xdebug.remote_autostart = выключено"

И перезапустите веб-сервис.В этом примере — Apache.

Вы можете прочитать больше здесь: http://doc.waterproof.fr/phpedit/debugging_profiling/configuration/debugger_with_xdebug

Удачи!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top