SSH + XDebug + PhpStorm


CLI debugging. I never did that. Until today. My tests started to fail and I had no idea why.

So that’s my story why I started to debug tests in the CLI via SSH.

Here’s a list of ingredients:

  • PhpStorm,
  • remote SSH (I’m using Vagrant),
  • PHP + XDebug.

First thing what we need to do is to configure the PhpStorm.

Open your setting and go to Languages & FrameworksPHPDebugDBGp Proxy.

dbgp proxy

  1. Fill the field IDE key with key you choose (I chose PHPSTORM and I recommend it).
  2. In the Host field put the IP which is seen by remote (run echo $SSH_CLIENT on the remote to see it).
  3. Default Port is 9000 and you should not change it.

Next thing to configure is Language & FrameworksPHPServers.


  1. Put the server Name.
  2. In the Host field type the IP address, same as on DBGp Proxy.
  3. If you set other Port for DBGp Proxy then change it here.
  4. As we are working on XDebug you don’t have to change the Debugger :).
  5. My remote has different folders structure so I had to set path mapping, probably you will have to do the same.

Ok PhpStorm is ready to go.

Now go to SSH and run this command:

In the first line put your Server Name which you’ve just set. In the second just update the remote_host with the IP address and change the idekey to yours.

The last thing to do is to enable listening for debug connections in the PhpStorm. Just click the button in the top right corner:

enable debug

Ah I forgot, please add some breakpoints! And then you can run your tests / scripts etc.


Enjoy 😀

DevDocs – because your current docs sucks

I’m pretty sure that you use many documentations, for frameworks, languages and libraries. You have to add many pages to favourites or google for them. But there is a solution for this. And it’s ultra practical.

Just go to

Quick info:

  • multiple docs,
  • stores all data in the browser storage,
  • support fuzzy search, yaay!
  • dark / light theme,
  • ultra quick.

How to use it? Simply choose docs which you want to have in the left sidebar. Then type something in search bar and instantly you will have the results 🙂 How cool is that?

So scrap all your favourites and start using DevDocs!

PhpStorm distraction free mode

Today I discovered another cool feature of PhpStorm.

I always open it on full screen of my main display. But it display to much things. I wanted only the code. To focus on it. Enable it via View > Enter Distraction Free Mode. All tabs, menus, buttons will be gone. The code will be centred. Brilliant 🙂

Here’s screenshot:

PhpStorm distraction free mode
PhpStorm distraction free mode

PHP built in server and sessions


Today I was struggling with Codeception tests. I’m working on Vagrant machine which has Apache2 installed.

Thing is that to view the page on my host machine I’m utilising Apache. But in the acceptance tests I’m using PHP built in server. To be specific is used. It allows to run server as tests are running and destroy it at the end. It also supports many options.

Acceptance tests were broken. The Tester could not login. After some investigation I found that the issue was caused by read/write permissions for session. By default my Vagrant tries to store the session files in the /var/lib/php/session. As I opened my project in Apache earlier the permissions were given for it. There are two options to solve this:

  • change the path for session files,
  • change the permissions for the current path.

I choose first option. To be specific I changed it only for server used by tests. The extension allows to specify custom .ini file. So my file tests/php.ini look like this:

Also here’s part of my codeception.yml file:

Now session are working in tests 🙂



Bumping Postgres version on Vagrant + CentOS + Chef + postgresql cookbook

Today I was trying to bump the Postgres on my Vagrant to 9.4. The cookbook I’m using:

Thing is that the cookbook defines a recipe yum_pgdg_postgresql. So to configure everything just add attributes, here’s example from my cookbook attributes default.rb file:

First line is very important. Current version of cookbook postgresql provides up to 9.2 (source version so we have to specify URL to fetch v9.4. As you can see it must specify all required data, postgresql version, os version and os technology used. All available versions for rpm are here

Second lines ensures that recipe yum_pgdg_postgresql will be included.

The last is obvious, version of postgresql to use.

Vagrant and NFS – problems?


Recently I heard that using NFS is much faster than default shared folders in the Vagrant with VirtualBox. After some research I started to upgrade my Vagrantfile. Here is snippet how to make you shared partition NFS type:

And that’s all!


Yesterday I had a problem. When I tried to up the vagrant it failed. My recent changes (I changed the username on my OS X) broke something in the NFS configuration. Quick search and found the solution. Seems that I had wrong entries in the file /etc/exports. Here is bash fix:

After that all works like a charm 🙂

The machine started to work very fast. It should be set as a default sharing method…


PS. If you are working on the Windows, try a plugin


Cheers, Damian.