Включить Xdebug в Apache 2 Debian 11

#apache2 #xdebug #php-7.4

Вопрос:

Мне нужно отладить PHP-приложение, работающее на веб-сервере Apache 2. Но Xdebug вообще ничего не делает; конфигурация загружена правильно, как я могу видеть в моем phpinfo() .

 zend_extension=xdebug.so

[debug]
xdebug.profiler_enable_trigger = 0
xdebug.profiler_enable = 1
#xdebug.remote_enable = 1
xdebug.profiler_output_dir = "/tmp"
#xdebug.client_host = ip-of-my-desktop
#xdebug.log = "/tmp/xdebug.log"
#xdebug.default_enable = 1
#xdebug.discover_client_host = 1
xdebug.log_level = 10
xdebug.log =  "debug"
xdebug.output_dir = /tmp
 

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

  • Файл профиля не создается, и никто не пытался подключиться к моей машине через порт 90000.
  • Xdebug.строка журнала также не имела никакого эффекта, файл не был создан.

Спасибо за вашу помощь, у меня заканчиваются идеи, мне удалось заставить его работать на машине Debian 9.

часть xdebug от phpinfo()

 Development Aids    ✔ enabled   🖹
Coverage    ✘ disabled  🖹
GC Stats    ✘ disabled  🖹
Profiler    ✘ disabled  🖹
Step Debugger   ✘ disabled  🖹
Tracing ✘ disabled  🖹
Directive   Local Value Master Value
xdebug.auto_trace   (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.cli_color    0   0
xdebug.client_discovery_header  no value    no value
xdebug.client_host  localhost   localhost
xdebug.client_port  9003    9003
xdebug.cloud_id no value    no value
xdebug.collect_assignments  Off Off
xdebug.collect_includes (setting removed in Xdebug 3)   (setting removed in Xdebug 3)
xdebug.collect_params   (setting removed in Xdebug 3)   (setting removed in Xdebug 3)
xdebug.collect_return   Off Off
xdebug.collect_vars (setting removed in Xdebug 3)   (setting removed in Xdebug 3)
xdebug.connect_timeout_ms   200 200
xdebug.coverage_enable  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.default_enable   (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.discover_client_host Off Off
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.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  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.gc_stats_output_dir  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.gc_stats_output_name gcstats.%p  gcstats.%p
xdebug.halt_level   0   0
xdebug.idekey   no value    no value
xdebug.log  debug   debug
xdebug.log_level    10  10
xdebug.max_nesting_level    256 256
xdebug.max_stack_frames -1  -1
xdebug.mode develop develop
xdebug.output_dir   /tmp    /tmp
xdebug.overload_var_dump    (setting removed in Xdebug 3)   (setting removed in Xdebug 3)
xdebug.profiler_append  Off Off
xdebug.profiler_enable  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.profiler_enable_trigger  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.profiler_enable_trigger_value    (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.profiler_output_dir  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.profiler_output_name cachegrind.out.%p   cachegrind.out.%p
xdebug.remote_autostart (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.remote_connect_back  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.remote_enable    (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.remote_host  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.remote_log   (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.remote_log_level (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.remote_mode  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.remote_port  (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.remote_timeout   (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
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   (setting removed in Xdebug 3)   (setting removed in Xdebug 3)
xdebug.start_upon_error default default
xdebug.start_with_request   default default
xdebug.trace_enable_trigger (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.trace_enable_trigger_value   (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.trace_format 0   0
xdebug.trace_options    0   0
xdebug.trace_output_dir (setting renamed in Xdebug 3)   (setting renamed in Xdebug 3)
xdebug.trace_output_name    trace.%c    trace.%c
xdebug.trigger_value    no value    no value
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth    3   3
 

PS: Я установил пакет php-xdebug
PPS: Xdebug v3.0.2

Комментарии:

1. Какую версию Xdebug вы загрузили? Вывод phpinfo() сообщит вам об этом.

2. Говорит Xdebug v3.0.2

3. Xdebug v3 по умолчанию использует порт 9003 , в то время как предыдущий Xdebug v2 использовал 9000. Я предлагаю вам показать весь вывод xdebug_info() в реальном времени (или весь раздел Xdebug из phpinfo() ), снятый таким же образом , как вы пытаетесь отладить (веб-страница или интерфейс командной строки-сейчас довольно часто для них используются разные конфигурации).

4. Готово, копия вставлена из phpinfo()

5. 1) Ну, у вас есть Step Debugger ✘ disabled ; То же самое для всех остальных битов. Неудивительно, что он ничего не делает. xdebug.org/docs/step_debug — сделайте mode так, чтобы debug там было: xdebug.org/docs/all_settings#mode 2) xdebug.log debug debug — укажите на определенный файл (полный абсолютный путь), в идеале в папке, где хранятся другие журналы, а не временные. 3) Кстати (на всякий случай) — Xdebug будет пытаться подключиться localhost:9003 и для запуска потребуется флаг «отлаживать меня» (посмотрите параметр xdebug.start_with_request для автоматического запуска)

Ответ №1:

Я не уверен, почему это работает сейчас.

Теперь у меня есть эта конфигурация.

 xdebug.mode="debug"
xdebug.trigger_value="XDEBUG_ECLIPSE"
xdebug.start_with_request="yes"
xdebug.client_host="myip"
 

Файлы cookie и переменные среды ничего не изменили.