Tunneling

Tunneling provides a means of persistent connection between Zend Studio and a remote server situated behind a Firewall, NAT or in a private network. After creating a Tunnel, all communication between Zend Studio and the server can go through that tunnel, instead of assigning more communication ports for the Debug/Profile Sessions made on the remote server.

Note:

A communication tunnel cannot currently be created to a Windows server.

Zend Debugger Tunneling

The persistent connection between Zend Studio and a remote server operates even when separated by a firewall. The advantage of this method is that it is possible to use the Zend Studio Integration on several nodes at once. For example, debugging an entire cluster of machines behind a load-balancer over a single debugger connection to Zend Server's Studio Server component.
The technology is based on two functional elements:

  • The Zend Studio that includes an internal Web server that listens on the local host on a specific Auto Detection port.

  • Zend Server automatically evaluates Zend Studio’s Auto Detection port, by evaluating Zend Studio’s settings. These are the Tunnel Settings that are defined in Zend Server.

The tunnel communication port should be used in the following circumstances:

  1. When debugging or profiling files on a remote server which is behind a firewall or other security device.

Note:

Your server must be running the Zend Debugger or Xdebug in order for remote debugging and profiling capabilities to function.
The Zend Debugger comes bundled with Zend Studio and Zend Server. For instructions on installing and configuring Xdebug, see Installing Xdebug and Configuring Xdebug.

  1. Establishing communication between Zend Studio and Zend Server when Zend Server is running on a remote server which is behind a firewall or other security device. The communication between Zend Studio and Zend Server facilitates the integration that combines Zend Server's event reporting capabilities with Zend Studio’s editing, debugging and profiling features. This enables the viewing and debugging/profiling of Zend Server events in Zend Studio .
    See Zend Server Integration for more information.

Note:

To find out whether your server is situated behind a firewall, contact your System Administrator.

To set up a tunneling connection, several configuration settings need to be defined both in Zend Studio and on your server's debugger (this can be done through Zend Server or your php.ini file).

See Setting Up Zend Debugger Tunneling for more information.

SSH Tunneling

Secure Shell (SSH) is a network protocol for secure data communication between two networked computers - a server and a client, that connects via a secure channel over an insecure network. Meant to solve connectivity problems, SSH avoids security issues in firewalls or private networks.

SSH tunneling in Zend Studio can be configured for each server separately through server configuration.

To debug using an SSH tunnel in Zend Studio, it is required to define at least one port forwarding. An SSH tunnel can be created using the following port forwarding mechanisms:

  • Local port forwarding
  • Remote port forwarding

When Zend Studio connects to the local port (local endpoint) of the SSH tunnel and transfers data, the data will be forwarded to the remote end by translating the host and port values to those of the remote end of the channel.

The most common is remote port forwarding with following settings:

  • Local Address - 127.0.0.1
  • Local Port - Debugger port (by default 10137) (Prefences | Installed Debuggers | Configure | Debug Port).
  • Remote Port - The same as the local one (verify that it is not reserved on the server side).

See Setting Up SSH Tunneling for more information.