I am looking for a detailed setup instructions for a plugin project in PhpStorm with full comfort like quick deployment to a testing site, debugging etc.
I’m going to start with how our current project structure is and what are the issues with it.
The project folder (where it is checked out from our version control system) is e.g.
C:\Projects\sampleplugin. The testing site is
C:\wamp\www\wpsite, so the plugin is deployed as
One other important thing is that I have a clean, unzipped installation of WordPress mapped as a PHP library in my PhpStorm project so that I get code hinting etc. The PHP library is something like
In PhpStorm, I have set up a Deployment (Settings > Deployment) like this:
This deployment works fine.
However, I don’t know how to set up debugging (so that it works). I have this in Settings > PHP > Servers:
But the debugging doesn’t work, the Validate remote environment in that dialog doesn’t work etc.
Does any one of you have a fully working setup where you could do things like debug your plugin, step into WP code etc.?
I am assuming that you already followed the tutorials on setting up xDebug on PHP installation and PhpStorm. Let me know if you need some help with that.
I am using xDebug Helper extension on Chrome. Install it too.
With the extension installed:
Start Listening for PHP Debug Connections.
Go to Chrome and Select
Debug in the small insect.
Refresh your page.
Back in PhpStorm, accept the incoming connection.
Enjoy debugging your code.
I cheated by checking out my plugin into the wordpress plugins directory (can’t remember if I tried a sim link or not), opening a PHPStorm project on the whole wordpress install and just debugged from there.
Maybe not what you wanted but I was up and running in 5 mins.
I’m using PHPStorm, and everything you describe should work. The only thing is that you need to install and configure xdebug via wamp to be sure it’s running.
My configuration is not fully functional so this isn’t really an answer … but I wanted to share my thoughts and some information on what I’ve tried to get this set up so far.
My setup was pretty much the same as that described by Borek.
With this setup, when I attempt to validate I receive the following error:
“Failed to execute validation script: ‘Could not read from “http://testing.localhost/_intellij_phpdebug_validator.php” because it is not a file.
The “Local path to create validation script” was set to C:\sources\my_plugins\plugins\privateer-page-types (the plugin source).
Obviously, it is looking in the wrong place so I changed the mapping to the following (Settings > Build,Execution,Deployment > Deployment):
I did this as I realized that the web path is supposed to be the web path to the project on the server.
Once I did that, going to Settings > Languages & Frameworks > PHP > Servers and selecting Validate, I had the following setup:
Clicking validate now properly shows the php.ini file, xdebug, remote host, etc.
I then set up a Run/Debug Configuration:
Starting the debugger, it sits at Waiting for incoming connection with ide key 16907 but never notices the connection.
I tried changing the port from 9000 to 8080 under Settings > Languages & Frameworks > PHP > Debug > Xdebug.Debug port … which then prevented the xdebug from starting as I have phpstorm set to use xdebug on 8080 ( Settings > Build,Execution,Deployment > Debugger ).
At this point, things seem like they should be working, but for some reason I cannot get past “listening”.
I’ve tried one config (noted above) with the start url as /, one with the start url as index.php, and another with the start url as the core plugin file … all with the same result.
Anywise, maybe this will help someone … and if I finally get it working I’ll make an update.