PhpStorm 2019.2 Help

Configuring Zend Debugger

Downloading and installing Zend Debugger

  1. Download the Zend Debugger package which corresponds to your operating system.

  2. Locate the ZendDebugger.so (Unix) or ZendDebugger.dll (Windows) file in the directory that corresponds to your version of PHP (for example 4.3.x, 4.4.x, 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x).

  3. Copy the file to your Web server in a location that is accessible by the Web server.

Enabling Zend Debugger integration with the PHP interpreter

  1. Open the active php.ini file in the editor:

    1. In the Settings/Preferences dialog (Ctrl+Alt+S), click PHP under Languages & Frameworks.

    2. On the PHP page that opens, click the Browse button next to the CLI Interpreter field.

    3. 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.

  2. Locate or create the [Zend] section.

  3. To load the Zend Debugger extension, add one of the following lines inside the [Zend] section depending on your operating system:

    • Linux and macOS:

      zend_extension=<full_path_to_ZendDebugger.so>

    • Windows:

      zend_extension_ts=<full_path_to_ZendDebugger.dll>

    • Windows non-thread safe:

      zend_extension=<full_path_to_ZendDebugger.dll>
  4. To enable access to Zend Debugger from PhpStorm, add the following lines:

    zend_extension=<full_path_to_zend_debugger_extension> zend_debugger.allow_hosts=127.0.0.1 zend_debugger.expose_remotely=allowed_hosts zend_debugger.tunnel_min_port=<any integer value above 1024> zend_debugger.tunnel_max_port=<any integer value below 65535>

    The value of the zend_debugger.allow_hosts parameter is the IPs of your machine to connect to the server debugger. It could be a comma-separated list of IPs in the format X.X.X.X (for example, 192.168.0.6).

  5. Restart your Web server.

  6. To check that the Zend Debugger has been installed and configured correctly, create a file with the following contents:

    <?php phpinfo();

    Open the page that corresponds to the file in the browser. The output should contain a Zend Debugger section.

Integrating Zend Debugger with PhpStorm

  1. In the Settings/Preferences dialog (Ctrl+Alt+S), go to Languages & Frameworks | PHP

  2. Check the Zend Debugger installation associated with the selected PHP interpreter:

    1. On the PHP page, choose the relevant PHP installation from the CLI Interpreter list and click the Browse button next to the field. The list shows all the PHP installations available in PhpStorm, see Configuring Local PHP Interpreters and Configuring Remote PHP Interpreters.

    2. The CLI Interpreters dialog that opens shows the following:
      • The version of the selected PHP installation.

      • The name and version of the debugging engine associated with the selected PHP installation (Xdebug or Zend Debugger). If no debugger is configured, PhpStorm shows Debugger: Not installed.

    Learn more about checking the Zend Debugger installation in Validating the Configuration of a Debugging Engine.

  3. Define the Zend Debugger behaviour. Click Debug under the PHP node. On the Debug page that opens, specify the following settings in the Zend Debugger area:

    • In the Debug Port field, appoint the port for PhpStorm to communicate with the tool through. Type the port number within the tunnel specified in the php.ini file through zend_debugger.tunnel_min_port and zend_debugger.tunnel_max_port. For details, see http://files.zend.com/help/previous-version/Zend-Server-4-Community-Edition/zenddebugger.html

    • To have PhpStorm accept any incoming connections from Zend Debugger engines through the port specified in the Debug port field, select the Can accept external connections checkbox.

    • To use a debugger toolbar in the browser, specify the port through which the debugger settings are passed to the browser in the Settings broadcasting port field.

    • Use the Automatically detect IDE IP checkbox to enable and disable auto-detection of hot IP addresses. When this checkbox is selected, PhpStorm detects all the host IP addresses to be sent to Zend Debugger through the debug_host parameter. All the detected IP addresses are listed in the field to the right. Auto-detection of IP address is helpful when you use Vagrant, or VirtualBox , or other virtualization tool.

      Clear the checkbox to block auto-detection of host IP addresses and specify the required ones explicitly in the field.

  4. In the External Connections area, specify how you want PhpStorm to treat connections received from hosts and through ports that are not registered as deployment server configurations.

    • Ignore external connections through unregistered server configurations: Select this checkbox to have PhpStorm ignore connections received from hosts and through ports that are not registered as deployment server configurations. When this checkbox is selected, PhpStorm does not attempt to create a deployment server configuration automatically.

    • Break at first line in PHP scripts: Select this checkbox to have the debugger stop as soon as connection between it and PhpStorm is established (instead of running automatically until the first breakpoint is reached). Alternatively turn on the Run | Break at first line in PHP scripts option from the main menu.

    • Max. simultaneous connections: Use this spin box to limit the number of external connections that can be processed simultaneously.

  5. To block requests from the Z-Ray system if they annoy you by invoking the PhpStorm debugger too often, select the Ignore Z-Ray system requests checkbox.

Configuring Zend Debugger for using in the On-Demand mode

PhpStorm 2016.2 and later supports the On-Demand mode, where you can disable Zend Debugger for your global PHP installation and have it enabled automatically on demand only when you are debugging your command-line scripts or when you need code coverage reports. This lets your command line scripts (including Composer and unit tests) run much faster.

  1. Disable Zend Debugger for command-line scripts:

    1. In the Settings/Preferences dialog (Ctrl+Alt+S), select PHP under Languages & Frameworks.

    2. From the PHP executable list, choose the relevant PHP interpreter and click the Browse button next to it. In the CLI Interpreters dialog that opens, click the Open in Editor link next to the Configuration file: <path to php.ini> file. Close all the dialogs and switch to the tab where the php.ini file is opened.

    3. In the php.ini file, find the [Zend] section and comment the following lines in it by adding ; in preposition:

      Linux and macOS:
      zend_extension=<full_path_to_ZendDebugger.so>
      Windows:
      zend_extension_ts=<full_path_to_ZendDebugger.dll>

      Windows non-thread safe:

      zend_extension=<full_path_to_ZendDebugger.dll>
    4. Open the CLI Interpreters dialog and click the Reload button next to the PHP executable field. PhpStorm informs you that debugger is not installed:

      ps_interpreters_debugger_not_installed.png

  2. To enable PhpStorm to activate Zend Debugger when it is necessary, specify the path to it in the Debugger extension field, in the Additional area. Type the path manually or click the Browse button and select the location in the dialog that opens.

Last modified: 23 September 2019