Подтвердить что ты не робот

Xdebug перестает работать, где искать ошибки?

Я установил Xdebug, и все было в порядке, пока он не прекратил работать. phpinfo() дает хороший вывод XDebug со всеми переменными.

php -m | grep deb

также дает дважды XDebug (для Zend и PHP), поэтому снова выглядит просто отлично. Мой php.ini имеет следующие строки:

zend_extension=/usr/lib/php5/20090626/xdebug.so
;extension=xdebug.so
xdebug.remote_host=localhost
xdebug.remote_enable=on
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=1

И все же, при запуске этого кода с должен проверять XDebug (из документов Netbeans), он просто застрял. Таким образом, IDE не работает с XDebug.

<?php
$address = '127.0.0.1';
$port = 9001;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);

Кроме того, согласно установке XDebug, я дважды прошел эти шаги. Что не так с моей конфигурацией? Спасибо.

4b9b3361

Ответ 1

В конце концов, осталось только два решения - переустановить Ubuntu OS или установить новую виртуальную машину, особенно для xdebug, я перейду ко второму. Смешно, все работает в соответствии с "RTM" (f = freaking). Одна вещь, которую я не мог понять, - это прочитать журналы для XDebug, чтобы понять, где настоящая проблема.

UPDATE

После некоторых попыток я удалил каждую строку, связанную с xdebug, со всех php.ini, которые у меня были. И переместили эти строки в /etc/php 5/conf.d/xdebug.ini. Перезапуск Apache, а затем PHPStorm, и он работает. Постскриптум в середине я попытался установить xdebug с pecl, из github и стандартной версией Ubuntu. Я думаю, что тот, который я собрал, в настоящее время работает. И.. журнал также обновляется.

;xdebug configuration
zend_extension = /usr/lib/php5/20090626/xdebug.so
xdebug.remote_host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log="/tmp/xdebug.log"

Ответ 2

На вашем сервере попробуйте выполнить следующую команду:

$ netstat -anp | grep CLOSE_WAIT

Любой: 9000 записей предоставят вам проблемы с XDebug; рассмотрим kill -9 <pid>.

Ответ 3

У меня тоже была проблема с Ubuntu после обновления php. Для меня, включив html-ошибки в php.ini, вы получили xdebug с Netbeans, чтобы снова работать...

sudo vi /etc/php5/apache2/php.ini
display_errors = On
html_errors = On

И перезапустите apache:

sudo /etc/init.d/apache2 restart

http://ubuntuforums.org/showpost.php?p=9592364&postcount=14

Ответ 4

Я проверил свой

netstat -anp

и выяснили, что в моем удаленном компьютере было запущено множество открытых сокетов (в диапазоне портов XDebug) мастер-процессом [running xDebug].

Убийство процесса "мастер" решило проблему для меня.

Казалось, что ситуация с переполнением порта для меня. Думал, что информация может быть полезна для некоторых.

Ответ 5

check port не занят, проверьте, что netbeans настроен на прослушивание этого порта (я вижу, что у вас есть 9001, 9000 по умолчанию обычно), также когда я отлаживаю работу с eclipse, мне приходится "завершать и перезапускать" сеанс отладки каждый раз и то, так как он перестает работать, никогда не понимал, почему, я подозреваю, что какая-то истекшая сессия отладки