Intereting Posts
Будет ли повышать производительность опроса из базы данных SQL вместо файла для чата? if (! empty ($ _ POST)) не работает где я могу найти «imagick.so» для ImageMagick 6.9.0.0 x86_64? Пропущенные массивы теряют все, кроме первого элемента Reindex, увеличивая и уменьшая все верхние индексы Результаты группы MySQL (или PHP?) По данным поля Пользовательская маршрутизация в инжекторе кода Как изменить имя файла, отображаемое в диалоговом окне «Сохранить как …» с .php на .png WordPress Ajax возвращает полную html-страницу из functions.php, а не echo Ограничение на обновление php mysql преобразование строки / массива с помощью php Как удалить сеанс PHP? Загрузка видео на Youtube с использованием API данных Youtube V3 и клиента API Google PHP – получение сообщения 401 (несанкционированное) выберите первый дочерний узел корневого узла в файле XML, используя php Chrome создает повторяющиеся сеансы с одинаковым идентификатором

Xdebug для удаленного сервера, не подключающегося

Я хочу, чтобы команда, использующая разные компьютеры, могла отлаживать PHP на удаленном сервере, но мне трудно заставить Xdebug работать в NetBeans 7.0.1. Я пробовал много онлайн-советов, но безрезультатно.

Для записи я успешно установил Xdebug локально на компьютере под управлением Windows 7 с WampServer. Поэтому я могу отлаживать PHP с точками останова в NetBeans, если я установил свойство Project Properties-> Run Configuration-> Run As на локальный веб-сайт . Однако, как указано выше, моей целью является отладка в NetBeans на удаленном веб-сайте .

Мой сервер – Ubuntu 11.04. Я использовал вывод из http://www.xdebug.org/find-binary.php, чтобы поместить на диск правильный двоичный файл. Я изменил все файлы php.ini которые я смог найти (в каталогах php5/apache2 и php5/cli ), чтобы включить эти строки:

 zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so" xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 

Если я phpinfo.php веб-страницу phpinfo.php , она говорит:

 This program makes use of the Zend Scripting Language Engine: Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans 

Поэтому Xdebug, похоже, правильно установлен. Тем не менее, когда я пытаюсь выполнить отладку в NetBeans, я получаю бесконечное сообщение строки состояния Waiting For Connection (netbeans-xdebug) . Когда я нажимаю кнопку «Стоп», я получаю Нет соединения из xdebug, которое было обнаружено в течение X секунд. Причина может заключаться в том, что xdebug не установлен или неправильно настроен .

Может быть, я запутываю локальные настройки с настройками сервера здесь? Сообщение xdebug.remote_host должно быть установлено на IP-адрес машины, работающей с NetBeans , но я хочу, чтобы команда могла отлаживать использование машин с разными IP-адресами. Проблемой может быть порт 9000, но я проверил, что он не заблокирован.

Любая помощь, которая могла бы прояснить это, была бы оценена!

Related of "Xdebug для удаленного сервера, не подключающегося"

Сервер, на котором запущены PHP (и XDebug), должен иметь возможность подключаться к вашей рабочей станции / рабочему столу.

схема

Таким образом, вам понадобится сервер, настроенный соответственно, либо сообщив ему, чтобы подключиться к определенному IP-адресу ( xdebug.remote_host ), либо автоматически «подключиться обратно» ( xdebug.remote_connect_back ). Однако последнее имеет некоторые последствия для безопасности. Они изложены в руководстве .

Ключевая директива такова:

 xdebug.remote_connect_back = On 

Это позволяет веб-серверу подключаться к любому компьютеру, запрашивающему сеанс отладки. Таким образом, вам не нужно жестко программировать IP-адрес и вы можете делиться Xdebug. Эта директива отсутствовала в более ранних версиях и часто исключается из учебников и документации.

Вам также необходимо проверить, что каждый клиентский компьютер принимает входящие подключения к порту 9000 ( xdebug.remote_port ). Это включает настройку брандмауэра и обеспечение готовности клиента отладчика

Для меня это xdebug.remote_connect_back = On не работает. Что я сделал, была настроена пересылка порта ssh на моей клиентской машине.

Конфигурация xdebug на удаленном компьютере:

 xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_autostart=1 xdebug.remote_handler = dbgp xdebug.remote_mode = req 

передние порты на клиентской машине:

 ssh -g -N -lusername -R9000:127.0.0.1:9000 [remote.host.ip] 

Доступ к оболочке на удаленной машине должен быть разрешен.

В моем случае эти команды помогли мне:

 xdebug.remote_enable = On xdebug.remote_autostart=1 

Обратите внимание: отладчик будет работать, даже если переменная GET / POST / COOKIE отсутствует из-за «xdebug.remote_autostart = 1»

Какое расширение страницы вы запускаете, чтобы начать отладку? Я помню, я сошел с ума и провел бессонные ночи, когда все настройки с XDebug прекрасны. Проблема в том, что я не начинал с .PHP а начинал с .HTML .

Если вы попытаетесь запустить отладку с файлом .PHP .

Вам понадобится установить:

 xdebug.remote_host=192.168.1.104 

192.168.1.104 – это IP-адрес клиента, где вы работаете с IDE

Спасибо за xdebug.remote_connect_back = On стороне сервера php.ini
Также я должен был использовать этот плагин для Chrome, чтобы начать отладку сеанса в PhpStorm