phpstrom 遠程調試


一、            目標

         實現phpstorm遠程調試,並且支持多人調試同一份代碼,這里遠程跨網調試,即服務器代碼在公網上,與開發人員處於完全不同的兩個網絡環境;

二、            准備工作

  1. 1.         網絡環境

                   服務器域名:www.test.com

                   開發網絡:中國電信動態ip

  1. 2.         服務器配置

linux  centos 輸入命令

# cat /etc/redhat-release顯示如下版本號

                   CentOS release 6.5 (Final)

         # nginx -v

                   nginx version: nginx/1.6.0

         # php-fpm -v

                   PHP 5.4.31 (fpm-fcgi) (built: Jul 24 2014 09:25:56)

                   Copyright (c) 1997-2014 The PHP Group

                   Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

                       with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

  1. 3.         開發人員配置

         phpstorm 8

         chrome+ xdebug helper

 

  1. 4.         需要端口號

           i.              開發人員網絡

         9005 ---> 9005

                   這里是在開發人員網絡環境開放一個端口供服務器返回調試信息,由於開發人員是通過路由或者交換機上網,所以必須從公網ip端口映射到本機端口,這里我們的環境是交換機,即我的開發機器是從交換機拉出一條網線聯網的,所以到網關上(瀏覽器里輸入網關地址)做一個映射,公網ip的9005端口映射到本機局域網ip的9005端口

         ii.              服務器網絡

         22

                   這個一般是默認端口,我們發布代碼的通道

         9001 ---> 9001

                            調試注冊接口,即開發人員機器到服務器上注冊一個唯一Key,讓服務器           識別不同的開發人員,這里由於服務器也處於某一局域網,所以也必須設置一                            個端口映射,可以讓我們可以從公網ip找到它

三、            開始配置

a)         PhpStorm設置

File-->Settings-->Deployment

 

點擊新增

Root path ,即服務器nginx網站根目錄

User name 即服務器系統登錄賬戶

 

設置好后點擊Test SFTP connection...,成功后如下

 

繼續點擊上面選項卡Mappings

 

local path 設置本地網站根目錄

 

File-->Settings-->Servers

use path mappings. 即上面設置的local path對應服務器上nginx網站根目錄

 

 

 

File-->Settings-->Debug

Debug port 即前面准備工作提到的9005端口

 

 

Tools-->DBGp Proxy-->Configuration

這里的idkey用於區分你和其他開發人員身份

9001即前面提到的服務器開放的注冊端口

 

phpstorm這里關鍵配置完畢

b)        chrome設置

google瀏覽器擴展程序:Xdebug helper,下載安裝啟用后,地址欄會出現小蟲子圖標,右擊小蟲子選項,會出現如下界面:

 

設置好IDE key,要跟前面DBGp Proxy中設置的一樣

 

c)         nginx設置

         # vi /etc/php.ini

 

第一行根據自己php版本,我這里不需要設置,在我這里版本php已經配好了xdebug,所以第一行我注釋掉了;

xdebug.remote_enable=1開啟遠程調試

xdebug.remote_port=9005,即前面提到的開放的公網ip端口號9005;

xdebug.remote_connect_back=1,設置1后,即xdebug可以根據你訪問的通道建立回訪通道,把xdebug信息返回到你的機器,所以xdebug.remote_host設置不設置無所謂,xdebug.idkey也可以不設置

d)        DpgpProxy設置

這是一個xdebug監聽軟件,軟件運行后,開發人員phpstorm可以到這里注冊一個idkey,服務器xdebug的調試信息發送到這里,然后返回到對應開發人員的phpstorm,實現遠程多人調試;

下載地址:http://code.activestate.com/komodo/remotedebugging/

 

 

不要選php,選python版本的,不要下載錯哦,

下載到服務器指定目錄后解壓,有一個pydbgpproxy的執行文件,找到文件所在目錄,然后輸入命令:

./pydbgpproxy -i 0.0.0.0:9001 -d 9000

 

0.0.0.0是一個通配符,如果你開發人員環境網絡公網ip是固定的,可以設置成具體ip,由於我們動態ip,所以用0.0.0.0,

后面9000是監聽xdebug發來的調試信息的,由於我們dbgp proxy軟件和服務器在同一台機器上,所以隨便給一個接口,只要不沖突就可以了

運行命令后,效果如下:

INFO: dbgp.proxy: starting proxy listeners. appid: 10814
INFO: dbgp.proxy: dbgp listener on 127.0.0.1:9000
INFO: dbgp.proxy: IDE listener on 0.0.0.0:9001

 

然后回到phpstrom 點擊tools-->DBGp Proxy-->Register IDE,如果端口號通暢,會提示注冊成功:

 

 

服務器也會有提示:

Server:onConnect ('xxx.xxx.xx.xxxx', 25243) [proxyinit -p 9005 -k PhpStorm1 -m 1]

 

 

 

最后打開網址,代碼設置斷點,瀏覽器點擊小蟲子開啟debug,就可以調試啦!

 

如上,都是測試配置成功,但由於各軟件版本,以及安裝不同,極大出現不成功因素,但是只要弄懂原理,都是一樣,所以建議看下參考資料:

http://matthardy.net/blog/configuring-phpstorm-xdebug-dbgp-proxy-settings-remote-debugging-multiple-users/?replytocom=320

https://confluence.jetbrains.com/display/PhpStorm/Multi-user+debugging+in+PhpStorm+with+Xdebug+and+DBGp+proxy

http://xdebug.org/docs/remote


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM