PhpStorm 2018.2 Help

Validating the Configuration of a Debugging Engine

PhpStorm can validate your configuration of Xdebug or Zend Debugger and tell you if some setting is missing (for example, xdebug.remote_enable) or inconsistent with other settings. When configuring the PHP interpreter for a project, PhpStorm informs you whether a debugger is installed in your local PHP development environment and reports on the Xdebug or Zend Debugger version used. For details, see Configuring a Debugging Engine, Configuring Local PHP Interpreters, and Configuring Remote PHP Interpreters.

You can also get more detailed information about the debugging engine on a local or remote Web server.

  1. On the main menu, choose Run | Web Server Debug Validation.

  2. In the Web Server Debug Validation Dialog that opens, choose the Web server to validate the debugger on.
    • Choose Local Web Server or Shared Folder to check a debugger associated with a local Web server.
      • Path to Create Validation Script: In this field, specify the absolute path to the folder under the server document root where the validation script will be created. For Web servers of the type Inplace, the folder is under the project root.

        The folder must be accessible through http.

      • URL to Validation Script: In this text box, type the URL address of the folder where the validation script will be created. If the project root is mapped to a folder accessible through http, you can specify the project root or any other folder under it.

    • Choose Remote Web Server to check a debugger associated with a remote server.
      • Path to Create Validation Script: In this field, specify the absolute path to the folder under the server document root where the validation script will be created. The folder must be accessible through http.

      • Deployment Server: In this field, specify the server access configuration of the type Local Server or Remote Server to access the target environment. For details see Configuring Synchronization with a Web Server.

        Choose a configuration from the list or click Browse browseButton in the Deployment dialog.

  3. Click Validate to have PhpStorm create a validation script, deploy it to the target remote environment, and run it there.

Troubleshooting Validation Results

Connection Refused

There has been a problem connecting to your web server. Make sure that the URL (and port) are correct; these are provided to your web server either in the URL to validation script option or within your Deployment.

Please check that web path to validation script is correctly configured for...

The Path to create validation script within the local project does not map to the URL to validation script or Deployment URL option. If you are using a framework or the PHP built-in web server, this is likely due to the framework sending a 404 response instead of sending the actual file in that directory.

A quick way to test this is to create a test.php file in the directory you have set as the Path to create validation script, and then check that that file is callable from the URL to validation script or Deployment url with test.php appended.

For example, if the Path to create validation script is set to /var/www/public, create a test.php file with the following contents in that folder:

<?php echo 'test works';

If your URL to validation script or Deployment URL is http://192.168.100.100:8080, then you should be able to call that script by visiting http://192.168.100.100:8080/test.php and see the "test works" output. If you are seeing a 404 generated by your framework, then your URL rewriting is wrongly configured, and you should consult your framework's documentation to ensure that the URL rewriting configuration will return real files if they exist before sending any other requests to your framework dispatcher.

If you're seeing a 404 and you are using PHP built-in web server, it's likely because you cannot configure this web server to serve files on the file system if they exist. You'll need to add the following code to the file you are sending all requests to (typically index.php) in order to send file system files if they exist:

if (PHP_SAPI == 'cli-server') { // To help the built-in PHP dev server, check if the request was actually for // something which should probably be served as a static file $file = __DIR__ . $_SERVER['REQUEST_URI']; if (is_file($file)) { return false; } }

Remote host is configured as 'localhost' despite server host is probably not local

The URL to validation script contains something different from localhost, but the xdebug.remote_host value is not set, and is therefore using the default value of localhost, or is set to localhost or 127.0.0.1.

Last modified: 10 October 2018

See Also