#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 и переменные среды ничего не изменили.