天天看點

PHP - 如何使用XDEBUG來遠端調試?PHP - 如何使用XDEBUG來遠端調試?

PHP - 如何使用XDEBUG來遠端調試?

開發的時候我都是使用XDebug在本地調試,但是最近加入一些項目中去,環境太複雜了,要在本地搭建一個開發環境真的太麻煩了,那麼我們怎麼使用xdebug來遠端調試呢?

我這裡使用虛拟機搭建了一個模拟環境來實驗說明:

1.虛拟機IP:192.168.174.130 ,虛拟機用于搭建lampp環境

2.實體機IP:192.168.174.1,這個是IDE的開發環境。

首先我在虛拟機裡面安裝了一個lampp,而且增加了一vhosts,具體如下:

PHP - 如何使用XDEBUG來遠端調試?PHP - 如何使用XDEBUG來遠端調試?
vim /opt/lampp/etc/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    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>      
PHP - 如何使用XDEBUG來遠端調試?PHP - 如何使用XDEBUG來遠端調試?

這裡為了友善給vhosts設定一個域名,這個需要修改實體機的/etc/hosts後才能通路:

192.168.174.130    www.test.com

關鍵的一步我們需要設定虛拟機中的php.ini來支援xdebug遠端調試,增加了如下代碼:

PHP - 如何使用XDEBUG來遠端調試?PHP - 如何使用XDEBUG來遠端調試?
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      
PHP - 如何使用XDEBUG來遠端調試?PHP - 如何使用XDEBUG來遠端調試?

最關鍵的兩個設定xdebug.remote_host和xdebug.remote_connect_back,remote_host要設定成伺服器的ip,remote_connect_back要設定成1或者on

到這裡,服務端就設定好了,接下來我們來設定ide了,請原諒我是一個ide工具黨。我使用的Intellij IDEA,而PHPStorm的設定也是一樣的。

第一設定項目的server

PHP - 如何使用XDEBUG來遠端調試?PHP - 如何使用XDEBUG來遠端調試?

在Host那裡要填上,能夠正常通路到虛拟機伺服器的位址,我們之前設定的虛拟域名是www.test.com,是以我圖上也是寫得這個。

最關鍵的設定地方就是要勾上這個路徑映射,然後将需要調試的檔案寫上它在伺服器上的路徑,比如我這裡需要調試a.php,而在虛拟機伺服器上我們設定的web目錄是/data/web/,那麼它映射的路徑就應該是/data/web/a.php了。

一切設定好了以後,就可以像本地調試那樣開始了。

PHP - 如何使用XDEBUG來遠端調試?PHP - 如何使用XDEBUG來遠端調試?

OK了,沒有什麼技術含量,但希望能幫到需要的朋友,注意把文章中得ip位址,修改你自己的伺服器的位址。