When developing, I always use XDebug for local debugging, but recently I joined some projects. The environment is too complicated. It's really troublesome to build a development environment locally, so how do we use xdebug for remote debugging?
I used a virtual machine to build a simulation environment for experimental instructions:
1. Virtual machine IP: 192.168.174.130, the virtual machine is used to build a lampp environment
2. Physical machine IP: 192.168.174.1, this is the IDE development environment.
First I installed a lampp in the virtual machine and added a vhosts, as follows:
vim /opt/lampp/etc/extra/httpd-vhosts.conf <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/data/web" <Directory "/data/web"> Options All AllowOverride All Require all granted </Directory> ServerName www.test.com ErrorLog "test-error_log" CustomLog "test-access_log" common </VirtualHost>
In order to facilitate the setting of a domain name for vhosts, this requires modifying the /etc/hosts of the physical machine before accessing:
192.168.174.130 www.test.com
The key step is to set up php.ini in the virtual machine to support xdebug remote debugging. The following code is added:
vim /opt/lampp/etc/php.ini zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so" [xdebug] xdebug.default_enable=1 xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=192.168.174.130 xdebug.remote_port=9000 xdebug.remote_connect_back=1 xdebug.remote_autostart=1
The two most critical settings are xdebug.remote_host and xdebug.remote_connect_back. remote_host should be set to the server’s IP, and remote_connect_back should be set to 1 or on
At this point, the server is set up. Next we set up the IDE. Please forgive me for being an IDE tool guy. I use Intellij IDEA, and the settings for PHPStorm are the same.
The first server to set up the project
In the Host section, fill in the address of the virtual machine server that can be accessed normally. The virtual domain name we set before is www.test.com, so this is what I wrote in the picture.
The most critical setting is to check this path mapping, and then write the file that needs to be debugged with its path on the server. For example, I need to debug a.php here, and the web we set up on the virtual machine server The directory is /data/web/, then its mapped path should be /data/web/a.php.
After everything is set up, you can start like local debugging.
OK, there is no technical content, but I hope it can help friends in need. Please note the IP address in the article and modify the address of your own server.
The above content has shared with you the relevant knowledge of XDEBUG for PHP remote debugging. I hope you like it.
true