


Xdebug itself does not see a difference between either the proxy and a normal IDE. You have to configure Xdebug's xdebug.remote_host setting to the IP address of the machine that the proxy runs at. The Xdebug Firefox extension also has a setting for this. (See the documentation on how to set this up). When initiating the debugging session from the browser with either XDEBUG_SESSION_START=session_name as GET/POST/COOKIE parameter, or export XDEBUG_CONFIG="idekey=session_name" from the command line, make sure to change "session_name" to the idekey as configured in your IDE. In Komodo you also need to select "a system-provided free port" in the same configuration panel. For Komodo, it's at Edit->Preferences->Debugger->Connection->"I am running a debugger proxy and Komodo should use it"->"Proxy Key". Every developer should have its own unique idekey (I usually just pick my name), and this idekey should be configurable in the IDE.

This command requires an "idekey" that is a unique identifier for each client (IDE). An IDE needs to register itself with the DBGp proxy by using the proxyinit command. The proxy server the listens for IDE connections. This is most likely going to be on the same machine that acts as development server, so that the xdebug.remote_host setting should be set to "127.0.0.1" (i.e. In order to make things work for multiple developers and one source base, you set Xdebug's xdebug.remote_host setting to the machine on which the DBGp proxy runs. A DBGp proxy is a bit of software that acts as a redirector for DBGp streams. DBGp is the protocol, designed by ActiveState and myself to facilitate communication between an IDE (such as Komodo, or any of the other listed clients ) and PHP+Xdebug. Now, in order to solve the above mentioned issue, you will need to run a DBGp proxy. htaccess trick won't work as the directory in which the code lives is the same. However, for the case where multiple developers work on the same code, the. There is no problem if all developers are working on a different project, because the xdebug.remote_host setting can be made for each directory (through Apache's. You don't want everybody on the Internet to be able to run a debugging session against your code for example. It does not automatically connect back to the IP address that runs the browser the request the PHP scripts because of security reasons. Xdebug only allows you to specify one IP address to connect to (through xdebug.remote_host ) while doing remote debugging.

As author of Xdebug, people ask me often the question how to handle the case in teams when there is one development server and multiple developers working on the same project on that server.
