PhpStorm XDebug через туннель ssh

У меня есть проект PhpStorm с удаленным развертыванием (Ubuntu Server 16.04) через ssh

Конфигурация развертывания PhpStorm

чтобы протестировать свой PHP-проект, я подключаюсь к удаленному серверу через ssh-туннель (замазка):

Конфигурация шпатлевки

где динамическое перенаправление порта D1024 используется для прокси-сервера браузера, а перенаправление удаленного порта R9000 localhost: 9000 следует использовать для XDebug

Я настроил PhpStorm для использования XDebug:

Конфигурация интерпретаторов командной строки PhpStorm

Конфигурация PhpStorm XDebug

и включил прослушивание соединений отладки PHP:

Отладка PHP PhpStorm включена

XDebug на удаленном сервере кажется включенным:  PHPInfo1

это раздел XDebug phpinfo () в моем браузере

xdebug
xdebug support  enabled
Version 2.6.0
IDE Key XDEBUG_ECLIPSE
Supported protocols
DBGp - Common DeBuGger Protocol
Directive   Local Value Master Value
xdebug.auto_trace   Off Off
xdebug.cli_color    0   0
xdebug.collect_assignments  Off Off
xdebug.collect_includes On  On
xdebug.collect_params   0   0
xdebug.collect_return   Off Off
xdebug.collect_vars Off Off
xdebug.coverage_enable  On  On
xdebug.default_enable   On  On
xdebug.dump.COOKIE  no value    no value
xdebug.dump.ENV no value    no value
xdebug.dump.FILES   no value    no value
xdebug.dump.GET no value    no value
xdebug.dump.POST    no value    no value
xdebug.dump.REQUEST no value    no value
xdebug.dump.SERVER  no value    no value
xdebug.dump.SESSION no value    no value
xdebug.dump_globals On  On
xdebug.dump_once    On  On
xdebug.dump_undefined   Off Off
xdebug.extended_info    On  On
xdebug.file_link_format no value    no value
xdebug.filename_format  no value    no value
xdebug.force_display_errors Off Off
xdebug.force_error_reporting    0   0
xdebug.gc_stats_enable  Off Off
xdebug.gc_stats_output_dir  /tmp    /tmp
xdebug.gc_stats_output_name gcstats.%p  gcstats.%p
xdebug.halt_level   0   0
xdebug.idekey   PHPSTORM    PHPSTORM
xdebug.max_nesting_level    256 256
xdebug.max_stack_frames -1  -1
xdebug.overload_var_dump    2   2
xdebug.profiler_aggregate   Off Off
xdebug.profiler_append  Off Off
xdebug.profiler_enable  Off Off
xdebug.profiler_enable_trigger  Off Off
xdebug.profiler_enable_trigger_value    no value    no value
xdebug.profiler_output_dir  /tmp    /tmp
xdebug.profiler_output_name cachegrind.out.%p   cachegrind.out.%p
xdebug.remote_addr_header   no value    no value
xdebug.remote_autostart On  On
xdebug.remote_connect_back  Off Off
xdebug.remote_cookie_expire_time    3600    3600
xdebug.remote_enable    On  On
xdebug.remote_handler   dbgp    dbgp
xdebug.remote_host  127.0.0.1   127.0.0.1
xdebug.remote_log   /var/log/apache2/xdebug.log /var/log/apache2/xdebug.log
xdebug.remote_mode  req req
xdebug.remote_port  9000    9000
xdebug.remote_timeout   200 200
xdebug.scream   Off Off
xdebug.show_error_trace Off Off
xdebug.show_exception_trace Off Off
xdebug.show_local_vars  Off Off
xdebug.show_mem_delta   Off Off
xdebug.trace_enable_trigger Off Off
xdebug.trace_enable_trigger_value   no value    no value
xdebug.trace_format 0   0
xdebug.trace_options    0   0
xdebug.trace_output_dir /tmp    /tmp
xdebug.trace_output_name    trace.%c    trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth    3   3

и это xdebug grep для php -i из командной строки:

 php -i | grep xdebug
/etc/php/7.1/cli/conf.d/20-xdebug.ini
xdebug
xdebug support => enabled
xdebug.auto_trace => Off => Off
xdebug.cli_color => 0 => 0
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => On => On
xdebug.collect_params => 0 => 0
xdebug.collect_return => Off => Off
xdebug.collect_vars => Off => Off
xdebug.coverage_enable => On => On
xdebug.default_enable => On => On
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value => no value
xdebug.dump.POST => no value => no value
xdebug.dump.REQUEST => no value => no value
xdebug.dump.SERVER => no value => no value
xdebug.dump.SESSION => no value => no value
xdebug.dump_globals => On => On
xdebug.dump_once => On => On
xdebug.dump_undefined => Off => Off
xdebug.extended_info => On => On
xdebug.file_link_format => no value => no value
xdebug.filename_format => no value => no value
xdebug.force_display_errors => Off => Off
xdebug.force_error_reporting => 0 => 0
xdebug.gc_stats_enable => Off => Off
xdebug.gc_stats_output_dir => /tmp => /tmp
xdebug.gc_stats_output_name => gcstats.%p => gcstats.%p
xdebug.halt_level => 0 => 0
xdebug.idekey => PHPSTORM => PHPSTORM
xdebug.max_nesting_level => 256 => 256
xdebug.max_stack_frames => -1 => -1
xdebug.overload_var_dump => 2 => 2
xdebug.profiler_aggregate => Off => Off
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => Off => Off
xdebug.profiler_enable_trigger => Off => Off
xdebug.profiler_enable_trigger_value => no value => no value
xdebug.profiler_output_dir => /tmp => /tmp
xdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%p
xdebug.remote_addr_header => no value => no value
xdebug.remote_autostart => On => On
xdebug.remote_connect_back => Off => Off
xdebug.remote_cookie_expire_time => 3600 => 3600
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => 127.0.0.1 => 127.0.0.1
xdebug.remote_log => /var/log/apache2/xdebug.log => /var/log/apache2/xdebug.log
xdebug.remote_mode => req => req
xdebug.remote_port => 9000 => 9000
xdebug.remote_timeout => 200 => 200
xdebug.scream => Off => Off
xdebug.show_error_trace => Off => Off
xdebug.show_exception_trace => Off => Off
xdebug.show_local_vars => Off => Off
xdebug.show_mem_delta => Off => Off
xdebug.trace_enable_trigger => Off => Off
xdebug.trace_enable_trigger_value => no value => no value
xdebug.trace_format => 0 => 0
xdebug.trace_options => 0 => 0
xdebug.trace_output_dir => /tmp => /tmp
xdebug.trace_output_name => trace.%c => trace.%c
xdebug.var_display_max_children => 128 => 128
xdebug.var_display_max_data => 512 => 512
xdebug.var_display_max_depth => 3 => 3

и мой браузер отправляет правильный файл cookie, поскольку отладка была включена из расширения Xdebug Helper Firefox: Cookie

вот моя конфигурация XDebug в /etc/php/7.1/mods-available/xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=1
xdebug.idekey="PHPSTORM"

Это содержимое xdebug.log

Log opened at 2018-03-23 11:39:26
I: Connecting to configured address/port: locahost:9000.
W: Creating socket for 'locahost:9000', getaddrinfo: No such file or directory.
E: Could not connect to client. :-(
Log closed at 2018-03-23 11:39:26

Когда я выполняю свой проект, просматривая его через свой браузер (туннель ssh), в PhpStorm ничего не происходит (даже если я установил точку останова в самом начале скрипта)

Где я не прав?

Может быть, два переадресации портов, которые я установил в Putty, мешают друг другу? как я могу это решить?


person fabio.ivona    schedule 23.03.2018    source источник
comment
1) Соберите журнал xdebug - он расскажет, что происходит со стороны xdebug 2) RTFM - со значением xdebug.remote_connect_back=On xdebug.remote_host ИГНОРИРОВАН, и используется автоматически определяемый IP (скорее всего, REMOTE_ADDR) .. что вообще бесполезно в вашей настройке.   -  person LazyOne    schedule 23.03.2018
comment
вы правы, connect_back получен из моей предыдущей попытки, спасибо, что указали на это. Вроде нет xdebug.log написано, где его можно настроить?   -  person fabio.ivona    schedule 23.03.2018
comment
Документы? xdebug.remote_log   -  person LazyOne    schedule 23.03.2018
comment
Я активировал его и показал следующее: Журнал открыт в 2018-03-23 ​​11:39:26 I: Подключение к настроенному адресу / порту: locahost: 9000. W: Создание сокета для 'locahost: 9000', getaddrinfo: Нет такого файла или каталога. E: Не удалось подключиться к клиенту. :-( Журнал закрыт 23.03.2018 11:39:26   -  person fabio.ivona    schedule 23.03.2018
comment
Почему написано locahost? 1) У вас есть опечатка - она ​​должна быть localhost (и именно об этом говорит ошибка - она ​​не может разрешить домен locahost) 2) В опубликованных вами настройках xdebug явно используется адрес 127.0.0.1 ... Вы редактировали его после? 3) Лучше проверьте, что у вас там получилось, из phpinfo() output - раздела xdebug - тот, который вы изначально опубликовали, довольно бесполезен, поскольку он показывает только верхнюю часть таблицы с наименее полезными настройками.   -  person LazyOne    schedule 23.03.2018
comment
Я отредактировал вопрос с полным разделом XDebug в phpinfo (). Он показывает xdebug.remote_host 127.0.0.1   -  person fabio.ivona    schedule 23.03.2018
comment
1) Итак, что должен сказать новый журнал xdebug? 2) Эти настройки - взяты ли они из phpinfo() вывода, захваченного через браузер или консоль? Это должно быть так же, как и при отладке.   -  person LazyOne    schedule 23.03.2018
comment
Привет, не знаю, полезно ли, но когда я это сделал, мне пришлось настроить файл cookie. Были расширения для Firefox, я думаю, это называлось Easy Xdebug   -  person JorgeeFG    schedule 23.03.2018
comment
настройки берутся из вывода phpinfo () в моем браузере. Я отлаживаю с помощью браузера xdebug.log не показывает ничего нового   -  person fabio.ivona    schedule 23.03.2018
comment
@JorgeeFG Я установил cookie с помощью расширения FFox   -  person fabio.ivona    schedule 23.03.2018
comment
Что значит ничего нового? показывает ли он точно такой же журнал? если это так - что-то очень не так в вашей настройке ... Теперь в настройках xdebug отображается порт 9001. Какой порт отображается в журнале? Вы настроили SSH-туннель для использования этого порта 9001? Извините .. но смешивание старой и новой информации здесь не помогает (так как они показывают разные настройки).   -  person LazyOne    schedule 23.03.2018
comment
да, точно такой же журнал .. что-то действительно не так в моей настройке ... Я здесь, потому что пытаюсь решить эту проблему. Я подумал, что, возможно, php использовал другую конфигурацию и сделал поиск grep -r locahost / etc /, чтобы найти файл конфигурации, в котором есть опечатка locahost, но ничего не было найдено :(   -  person fabio.ivona    schedule 23.03.2018
comment
В вопросе, который я добавил результат php -i из моей командной строки, он также показывает 127.0.0.1   -  person fabio.ivona    schedule 23.03.2018
comment
locahost находится в вашей конфигурации шпатлевки. Может ли это быть проблема?   -  person JorgeeFG    schedule 23.03.2018
comment
Это была проблема! Спасибо @JorgeeFG, теперь я чувствую себя таким глупым, я боролся с конфигурацией моего сервера и не обращал внимания на шпатлевку :( Спасибо, LazyOne, вы помогли мне во многом понять, как работает xdebug   -  person fabio.ivona    schedule 23.03.2018


Ответы (1)


в конфигурации туннеля замазки была опечатка, вместо localhost написано locahost

person fabio.ivona    schedule 23.03.2018