After showing last time how to connect PhpStorm with Redmine Today’s little blog post gives you a little tutorial, how to connect Xdebug and PhpStorm. Using Xdebug with your IDE gives you a lot of benefits. While clicking through the browser you can directly follow the code (by setting breakpoints) inside your IDE. You can find an introduction in Xdebug here and the whole documentation, surprise surprise, on xdebug.org.
What do you need to follow this little tutorial?
- PHP including xdebug
- Some basic knowledge, how to configure your PHP
- The left part of your brain
- A Linux/Unix-like operating system (Mac is fine)
I assume your PhpStorm is installed, and your PHP is working. First you may want to check in you phpinfo(), if xdebug is already installed. If not, then you need to install it (I did it using the pear repository):
pear install xdebug
Now as xdebug should be installed on your system, the next step is to activate the module. So add the following line in php.ini (if location is unclear, take a look at your phpinfo()):
YES, you need to declare it as zend_extension, trying to set it as extension=xdebug.so will fail. If you restart your PHP (Apache/PHP-FPM/whateveryouuse) and take a look into your phpinfo(), you should see Xdebug enabled. Next, you need to make some basic configuration. Mine is seperated for each PHP module inside a conf.d directory. I cannot exactly say, where yours is, this depends on your PHP distribution. In the conf.d directory I have a xdebug.ini file where all Xdebug specific configuration is set (beside the module activation in the php.ini). My configuration:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
xdebug.default_enable = 1 xdebug.max_nesting_level = 200 xdebug.scream = 1 xdebug.cli_color = 1 xdebug.collect_includes = 1 xdebug.collect_params = 4 xdebug.collect_return = 1 xdebug.dump_globals = 1 xdebug.idekey = PHPSTORM xdebug.remote_port = 8999 xdebug.remote_handler = "dbgp" xdebug.remote_host = 10.0.0.194 ;set your local network IP here xdebug.remote_enable = 1 xdebug.show_local_vars = 1 xdebug.collect_params = 4
Most important are idekey, remote_port, remote_handler, remote_host and remote_enable. Those are your settings to connect to PhpStorm. After another PHP restart you should see all your options as you configured them. Again, the Xdebug documentation is the place to go for a detailled description of all options.
Now, we need to configure PhpStorm to make use of Xdebug. Currently I use PhpStorm 4.0.2, there you find the options to set in
Preferences -> PHP -> debug
Set the following settings, and check if you really follow them, if you are unsure, what you are doing.
Next, configure the details in the DGBp proxy settings (Attention: set the host to that one you use on your local machine, I use test.local for example):
Now you are very closed to the end of this tutorial. To use the debugging, you need to restart your PhpStorm (at least the changes did not take effect on my machine until I did it) and to set your browser bookmarklets. You need some to send a cookie that tells Xdebug and PhpStorm to connect.
That’s it! Please share your experiences, so this tutorial can be enhanced.