电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

在VS?Code?中調(diào)試遠(yuǎn)程服務(wù)器的PHP代碼詳解

瀏覽:54日期:2022-06-13 16:18:42
目錄背景配置步驟1. 安裝 php debug 插件2. 安裝 xdebug3. 在php.ini中進(jìn)行配置開始調(diào)試1. 打斷點(diǎn)2. 啟動(dòng)調(diào)試3. 在瀏覽器中打開頁面4. 進(jìn)行調(diào)試背景

對(duì)于PHP的調(diào)試,一般來說我們用 echo 和 var_dump 就夠用了。

有時(shí)會(huì)碰到要解決復(fù)雜的邏輯或需要確認(rèn)代碼的運(yùn)行順序,這里用var_dump效率就比較低了,這時(shí)建議用斷點(diǎn)的方式進(jìn)行代碼調(diào)試。

這里通過 xdebug 配合vscode 的 php debug插件來實(shí)現(xiàn)。

配置步驟1. 安裝 php debug 插件

在VS Code中安裝php debug插件

這時(shí)會(huì)在你的項(xiàng)目的 .vscode 目錄下生成 launch.json 文件:

文件內(nèi)容如下:

{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 'version': '0.2.0', 'configurations': [{ 'name': 'Launch built-in server and debug', 'type': 'php', 'request': 'launch', 'runtimeArgs': ['-S','localhost:8000','-t','.' ], 'port': 9003, 'serverReadyAction': {'action': 'openExternally' }},{ 'name': 'Debug current script in console', 'type': 'php', 'request': 'launch', 'program': '${file}', 'cwd': '${fileDirname}', 'externalConsole': false, 'port': 9003},{ 'name': 'Listen for Xdebug', 'type': 'php', 'request': 'launch', 'port': 9003} ]}

這里定義了三種調(diào)度模式:

Launch built-in server and debug:適合沒有web server的環(huán)境,這種模式會(huì)用內(nèi)置的 PHP 調(diào)試器啟動(dòng)一個(gè)簡(jiǎn)單的 PHP Web 服務(wù)器,然后在瀏覽器中訪問 http://localhost:端口號(hào) 來訪問您的 PHP 網(wǎng)站。

Debug current script in console:這種是控制臺(tái)模式。

Listen for Xdebug:這種是監(jiān)聽xdebug,本文采用的就是這種模式。

這里我們可以先看看控制臺(tái)模式效果:

我們準(zhǔn)備一個(gè)簡(jiǎn)單的PHP代碼:

<?php $url = 'https://hotaigc.cn'; if ($url == 'https://hotaigc.cn') {echo 'success'; } else {echo 'error'; }

我們?cè)趇f這里打個(gè)斷點(diǎn),運(yùn)行效果如圖:

然后打開調(diào)試面板(圖中1),選擇 Debug current script in console(圖中2),然后點(diǎn)運(yùn)行(圖中3),就可以看到調(diào)試的效果

2. 安裝 xdebug

在遠(yuǎn)程服務(wù)器上安裝 xdebug,我的是 ubuntu 20.4 環(huán)境,用 apt-get 安裝就可以了:

sudo apt-get install php8.1-xdebug

其他系統(tǒng)參考這里:https://xdebug.org/docs/install

這里需要注意的是xdebug需要跟php的版本保持一致,你可以通過 phpinfo()來確認(rèn)你的PHP版本。

還有一個(gè)易出錯(cuò)的點(diǎn)是部分ubuntu版本會(huì)提示找不到xdebug包,這是因?yàn)橐话愣加眠@個(gè)PPA庫進(jìn)行安裝( https://launchpad.net/~ondrej/+archive/ubuntu/php ),但這個(gè)庫已經(jīng)不支持 ubuntu 20 以下的版本,具體見:https://wiki.ubuntu.com/Releases

如下圖,紅框以下的都已經(jīng)不支持了,只能自己想辦法從源碼編譯了:

3. 在php.ini中進(jìn)行配置

找到 php.ini 的路徑,可以從 phpinfo() 中找:

然后添加如下參數(shù):

[xdebug]# 根據(jù)擴(kuò)展實(shí)際存放路徑填寫zend_extension=xdebug;xdebug3.0中用于代替之前的xdebug.remote_enable=Onxdebug.mode=debug;xdebug3.0中用于代替之前的xdebug.remote_autostart,trigger對(duì)應(yīng)之前的off,yes對(duì)應(yīng)之前的onxdebug.start_with_request=trigger;xdebug3.0中用于代替之前的xdebug.remote_hostxdebug.client_host='127.0.0.1';xdebug3.0中用于代替之前的xdebug.remote_connect_back=On,它會(huì)自動(dòng)從$_SERVER['HTTP_X_FORWARDED_FOR'];或$_SERVER['REMOTE_ADDR']變量中獲取ip,當(dāng)然因?yàn)?_SERVER只有服務(wù)器模式有所以客戶端模式是用不了的(可配置其它變量);如果找不到ip它會(huì)回退(fallback)到xdebug.client_host指定的ipxdebug.discover_client_host=true;xdebug3.0中用于代替之前的xdebug.remote_portxdebug.client_port=9003;固定填dbgp(因?yàn)槟壳爸恢С诌@個(gè)協(xié)議,也只有這個(gè)協(xié)議)xdebug.remote_handler='dbgp';這是一個(gè)所有網(wǎng)上的文章都提到要設(shè)置但實(shí)際上卻沒啥用的參數(shù)(不信你可以注釋掉試試,一切都正常)xdebug.idekey='PHPSTORM'

這里需要注意的是 xdebug 的 3.x 版本和 2.x 版本參數(shù)是不一樣的。

開始調(diào)試1. 打斷點(diǎn)

這次我們寫一個(gè)簡(jiǎn)單的 Controller 代碼(注,我這里用的是Laravel),還是在if這里加個(gè)斷點(diǎn)(在VS Code的行號(hào)左邊點(diǎn)擊一下即可):

class CommonController extends Controller{ public function test(Request $request) {$a = 1;if ($a == 1) { return phpinfo();}return 1; }}2. 啟動(dòng)調(diào)試

選擇Listen for Xdebug調(diào)試模式,然后啟動(dòng)調(diào)試(第3張圖中有示例)

3. 在瀏覽器中打開頁面

在瀏覽器中打開會(huì)運(yùn)行該 Controller 方法的頁面(這里涉及到一些Laravel細(xì)節(jié),不展開講),正常情況這時(shí)瀏覽器頁面會(huì)停在加載中狀態(tài),等待調(diào)試。

4. 進(jìn)行調(diào)試

這時(shí)打開 VS Code,會(huì)看到代碼執(zhí)行到斷點(diǎn)這里停住了,我們可以看到變量,調(diào)用堆棧,調(diào)試工具欄等信息,如下圖所示:

到此這篇關(guān)于在VS Code 中調(diào)試遠(yuǎn)程服務(wù)器的PHP代碼的文章就介紹到這了,更多相關(guān)VS Code 調(diào)試遠(yuǎn)程服務(wù)器內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: PHP
主站蜘蛛池模板: 昊宇水工|河北昊宇水工机械工程有限公司 | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 华中线缆有限公司-电缆厂|电缆厂家|电线电缆厂家 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | 高压绝缘垫-红色配电房绝缘垫-绿色高压绝缘地毯-上海苏海电气 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 食安观察网 | 上海橡胶接头_弹簧减震器_金属软接头厂家-上海淞江集团 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 广东教师资格网-广东教师资格证考试网 | 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | 标策网-专注公司商业知识服务、助力企业发展| 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 企业微信营销_企业微信服务商_私域流量运营_艾客SCRM官网 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 双杰天平-国产双杰电子天平-美国双杰-常熟双杰仪器 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 品牌广告服务平台,好排名,好流量,好生意。 |