在對(duì)運(yùn)行在容器中的環(huán)境進(jìn)行debug,可以通過網(wǎng)頁(yè)和腳本倆種方式進(jìn)行debug,
這里介紹下對(duì)容器中的腳本進(jìn)行debug。
xdebug的原理了解。
![](http://img.jbzj.com/file_images/article/201808/201882994025684.png?201872994045)
xdebug是php的擴(kuò)展,會(huì)搜集php執(zhí)行的信息,然后發(fā)送給指令的遠(yuǎn)程ip+port。這里通常我們使用的開發(fā)工具會(huì)監(jiān)聽某個(gè)port。接受到php執(zhí)行信息。再debug界面進(jìn)行顯示。
首先,容器中的php環(huán)境需要有安裝好xdebug擴(kuò)展并且配置好,這里對(duì)應(yīng)的image名稱為php_sk。
![](/d/20211016/63dd77dc3e5870cb04c7261f706c9e3b.gif)
這是運(yùn)行的容器,/etc/docker/daemon.josn為使用api訪問docker的配置(目的是使phpstorm能訪問到容器)
,這里由于是測(cè)試環(huán)境,沒做訪問控制。
![](/d/20211016/2f508487d629a2929ea50fe43cbbb3c2.gif)
虛擬機(jī)安裝在VirtualBox里,網(wǎng)絡(luò)為NAT模式,通過端口轉(zhuǎn)發(fā)和內(nèi)部進(jìn)行通信
![](/d/20211016/5026fa3fafc68bc0a6a13ec79cfd6512.gif)
通過對(duì)端口2375的轉(zhuǎn)發(fā),瀏覽器可以訪問到api
![](/d/20211016/c4a007a68e551d4b7141302bd5e74983.gif)
設(shè)置debug端口,默認(rèn)9000
![](/d/20211016/c6c93ecf252c22bf0a70e7b6dfc32ed2.gif)
配置phpstorm里的docker訪問參數(shù)
![](/d/20211016/7c884e8418a58992dfd37edb620505bc.gif)
這時(shí)候可以看到虛擬機(jī)中的容器,可以進(jìn)行啟動(dòng),暫停,和訪問
![](/d/20211016/57cb346e94ff4829c794941ee999b350.gif)
![](/d/20211016/dda25632e2c39226267a9f73b0a347dc.gif)
選擇php版本,和命令行訪問模式,選擇docker,找到php對(duì)應(yīng)的image
![](/d/20211016/1bbcc749a031ffaac33a2af24cf88718.gif)
配置對(duì)應(yīng)的目錄,設(shè)置的name,在后面執(zhí)行腳本會(huì)使用到
![](/d/20211016/0fe48bba7be2e93e71a9d668c8d98851.gif)
配置debug,由于是命令行執(zhí)行腳本,選擇php script
![](/d/20211016/b9b693424bdcf30d1a0da1ad8ee826f2.gif)
連接至虛擬機(jī),執(zhí)行腳本(/home/www/sk/html/index.php),ip替換成phpstorm所在主機(jī)的ip
復(fù)制代碼 代碼如下:
docker run --rm -v /home/www:/home/www --env "XDEBUG_CONFIG=remote_host=10.249.22.204 remote_port=9010" --env "PHP_IDE_CONFIG=serverName=new" php_sk php /home/www/sk/html/index.php
![](/d/20211016/029d42d2b9935c9cf2b0bf7f8377db78.gif)
可以看到,已經(jīng)可以對(duì)腳本進(jìn)行debug了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。