Отладка PHP в Ubuntu (Xdebug)

Отладчик PHP Vim: Настройка Apache

Я пытаюсь установить Vdebug для отладки PHP в Vim. К сожалению, когда я нажимаю F5, это сообщение появляется через несколько секунд

Waiting for a connection (Ctrl-C to cancel, this message will self-destruct in
20  seconds...)
No connection was made

Что я должен делать?

Я искал об этом в Google, следовал этому учебнику и этому (и многим другим), но не работал.

Я следовал инструкциям Vdebug.

Я не знаю, как этого добиться

Edit your apache configure file

In your VirtualHost section, set debugger port same as the one in your vimrc:

php_value xdebug.remote_port **9009**

Только что упомянутый remote_port отличается от того, что есть в xdebug.ini и vimrc. Пожалуйста, смотрите ниже.

Прямо сейчас у меня есть в /etc/php5/apache2/conf.d/xdebug.ini:

zend_extension=/usr/lib/php5/20121212/xdebug.so
xdebug.remote_enable=1         
xdebug.remote_handler=dbgp     
xdebug.remote_mode=req         
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

xdebug.profiler_enable_trigger=1
xdebug.profiler_output_dir=/media/www/xdebugdata

И в моем vimrc

let g:vdebug_options = {}
let g:vdebug_options["port"] = 9000

Я также установил расширение Xdebug helper Chrome. Использование IDE не вариант: я хочу использовать Vim.

1 ответ

Решение

Я решил это, и теперь Vdebug работает.

Включите xdebug в PHP. Отредактируйте файл php.ini и добавьте следующее в разделе "Настройки модуля":

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

zend_extension=/path/to/my/xdebug.so

[debug]

; Remote settings

xdebug.remote_autostart=off

xdebug.remote_enable=on

xdebug.remote_handler=dbgp

xdebug.remote_mode=req

xdebug.remote_host=localhost

xdebug.remote_port=9000

; General

xdebug.auto_trace=off

xdebug.collect_includes=on

xdebug.collect_params=off

xdebug.collect_return=off

xdebug.default_enable=on

xdebug.extended_info=1

xdebug.manual_url=http://www.php.net

xdebug.show_local_vars=0

xdebug.show_mem_delta=0

xdebug.max_nesting_level=100

;xdebug.idekey=

; Trace options

xdebug.trace_format=0

xdebug.trace_output_dir=/tmp

xdebug.trace_options=0

xdebug.trace_output_name=crc32

; Profiling

xdebug.profiler_append=0

xdebug.profiler_enable=0

xdebug.profiler_enable_trigger=0

xdebug.profiler_output_dir=/tmp

xdebug.profiler_output_name=crc32

Попробуйте это

Все должно быть готово к работе. Перезапустите apache и запустите phpinfo(), чтобы увидеть, появляется ли какая-либо информация о xdebug. Если это не так, то apache error_log + google - ваши друзья.

В противном случае вы готовы запустить отладчик внутри vim.

Откройте PHP-скрипт в VIM, к которому вы можете получить доступ с вашего локального хоста. Откройте тот же PHP-скрипт в вашем веб-браузере. Добавьте F5. В нижней части VIM вы должны увидеть сообщение "Ожидание нового соединения через порт 9000 в течение 10 секунд...". В течение следующих 10 секунд обновите страницу браузера с помощью ?XDEBUG_SESSION_START=1 в конце URL. Вернитесь в VIM, и вы в отладчике во всей красе. Не забудьте: чтобы переключаться между окнами в VIM, нажмите CTRL-w-w.

Исходный код применяется к Ubuntu, хотя относится к другому дистрибутиву Linux

Надеюсь это поможет.

Другие вопросы по тегам