Debugging PHP in Ubuntu (Xdebug)

PHP Vim Debugger: Configuring Apache

I am trying to install Vdebug to debug PHP in Vim. Unfortunately, when I press F5 this message appears after a few seconds

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

What should I do?

I searched about this in Google, followed this tutorial and this one (and many others) but did not work.

I followed Vdebug instructions.

I do not know how to achieve this:

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**

The remote_port that has just been mentioned is different from what I have in xdebug.ini and vimrc. Please, see below.

Right now I have in /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

And in my vimrc

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

I installed Xdebug helper Chrome extension too. Using an IDE is not an option: I wish to use Vim.

1

1 Answer

I solved it and now Vdebug is working.

Enable xdebug in PHP Edit your php.ini file and add the following under the "Module Settings" section:

;;;;;;;;;;;;;;;;;;;
; 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=
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

Try it out

Everything should be ready to go now. Restart apache and run phpinfo() to see if any xdebug information comes up. If it doesn't, then the apache error_log + google are your friends.

Otherwise, you are ready to run the debugger inside vim.

Open a PHP script in VIM that you can access from your localhost Open that same PHP script in your web browser Add F5. You should see at the bottom of VIM like "waiting for a new connection on port 9000 for 10 seconds..." Within the next 10 seconds, refresh the browser page with the ?XDEBUG_SESSION_START=1 on the end of the URL. Go back to VIM and you're in the debugger in all its glory. Don't forget: to switch between windows in VIM, press CTRL-w-w.

Source -it applies to Ubuntu though it refers to another linux distribution-

Hope this helps.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like