Before you start
Before you start debugging, make sure that you have a debugging engine installed and configured properly. PhpStorm supports debugging with two most popular tools: Xdebug and Zend Debugger. These tools cannot be used simultaneously because they block each other. To avoid this problem, you need to update the corresponding sections in the php.ini file as described in Configuring Xdebug and Configuring Zend Debugger.
To open the active php.ini file in the editor:
In the Settings/Preferences dialog (Ctrl+Alt+S), click PHP under Languages & Frameworks.
On the PHP page that opens, click next to the CLI Interpreter field.
In the CLI Interpreters dialog that opens, the Configuration File read-only field shows the path to the active php.ini file. Click Open in Editor.
Listening for incoming debugger connections
In PhpStorm, enable listening to incoming debug connections by either clicking on the toolbar or selecting Debug tool window automatically. Before launching the script, make sure that either a breakpoint is set or the Break at first line in PHP scripts option is enabled on the Debug page of the Settings/Preferences dialog (Ctrl+Alt+S).in the main menu. This will ensure PhpStorm reacts when a debugging session is started and opens the
Depending on your preference or application requirements, you can use the PhpStorm's built-in webserver to run our application locally, or make use of any other web server running either locally or on a remote machine.
Using the built-in web server
Using an external web server
To create a Run/Debug configuration
Do any of the following:
Select Edit configurations... on the PhpStorm toolbar
Selectfrom the main menu.
Enter the full URL to the page we want to debug on the web server. Optionally, provide some mappings so PhpStorm can determine where to find local files relative to the remote URL. This is only required when we have a different project structure locally and on the remote server. Note that if you are deploying PHP applications with PhpStorm, mappings will be reused from the deployment configuration.
Starting a PHP debugging session from the browser
XDEBUG_SESSION_START=some-session-name URL parameter, for example,
<?php // ... ?><!doctype html> <html lang="en"> <head> <script src="index.js"></script> </head> <body> </body> </html>