Отладка 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
Надеюсь это поможет.