最近打算搞些php代码审计学习一下,但是遇到mac有不少问题,所以记录下踩坑。
看了下网上的文章,基本都是本地多环境,但我不想在本地装那么多PHP,所以就搞了远程配置调试。
为什么选择宝塔
一是主要是本机环境太多了的话 个人感觉会很烦,而且跟着网上文章折腾了半天也没成功,最终决定使用Ubuntu安装宝塔,主要是为了方便版本管理。 当然,也可以说是宝塔更无脑一点,能直接点点点。更适用于我这种脚本小子
二是,我本来是打算mac的phpstudy有问题的话,就用虚拟机搞就好了,但是理想很丰满,现实总是措手不及,因为小皮面板,并没有Arm架构的。 所以才想到还有一个宝塔。
踩坑记录
- 跟着试了phpstudy,但是u1s1,phpstudy在mac上 是真的难用
- 紧接着本地试了一下,折腾半天,指定版本各种出错。
记住重点就是
phpize要使用你当前要安装xdebug的版本的对应版本的
还有就是 记得多折腾 👹👹
环境准备
这里是以mac电脑M芯片+pd虚拟机
mac电脑需要安装好Phpstrom
这里我用的ubuntu的虚拟机
虚拟机打开宝塔官网,然后找到Linux对应发行版,执行对应命令就行
https://www.bt.cn/new/download.html
安装完成后,打开后台登录。
按照需求安装好对应中间件
这里选择nginx,后面有个问题,用1.24的Nginx好像有个报错,具体的细节忘记了,所以后面换了1.22。文章是后写的,所以没有图,手动贴图🤡
Ok安装完毕后,开始xdebug的安装。
xdebug
首先打开官网找到对应版本进行下载,如果不知道是哪个版本,可以本地输出phpinfo,然后复制源码到这个网站进行查询
https://xdebug.org/wizard
本地写入脚本展示phpinfo 查看源代码,然后复制进入上面的框内
这里可以看到,提示你需要phpize,所以这里牵扯到一个环境变量的问题,因为我们一般不可能只有一个php版本,而且每次切换也得修改系统变量,就会很麻烦。
你直接根据他这里的命令执行的执行,版本是系统环境变量里面的php版本的
这样会导致生成的xdebug也是对应版本的,和我们想要的不是同一个
下载源码-编译安装
OK 我们下载好源码后,进入源码的路径
1 | 获取xdebug的源码地址 之后进入文件夹用以下的命令编译 |
这里找到我们安装的php版本的/bin目录。找到对应的
1 | /www/server/php/73/bin/phpize |
这里后面的路径可以不写,不写我们写入php.ini的时候,就要跟上xdebug.so的绝对路径,如果编译的时候写了就可以直接写 zend_extension = xdebug
现在进入xdebug源码路径
执行
1 | /www/server/php/73/bin/phpize ./configure --with-php-config=/www/server/php/73/bin/php-config |
等待编译完成 会在xdebug-3.1.6/modules 路径下生成一个xdebug.so
然后我们根据刚刚xdebug界面的命令,直接给他复制到php扩展目录
1 | cp modules/xdebug.so /www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/ |
然后我们再到php版本下,修改php.ini,就编译完成了
php.ini 一般在对应版本的/etc/目录下
OK
暂时只需要加这个其实就OK了,后面再根据报错一步步进行添加,但是太麻烦了,直接拿
1 | [Xdebug] |
xdebug.client_host=”10.211.55.2” 这个ip 是你mac物理机的ip,而不是ubuntu虚拟机的ip 这个得记住。
验证是否开启xdbug
1 | <?php |
可以新建php,然后输入以上代码,然后打开对应页面
这里为enabled 即代表成功。
Phpstrom
OK 现在就剩最后的一步了
在Phpstrom进行测试,是否能进行远程调试
远程调试还有一点是需要本地源码和远程源码路径需要映射,配置时候需要利用sftp,需要虚拟机的账号密码 这里建议加个root用户,因为有可能有的操作权限不够。
打开设置,这里找到xdebug,把端口修改为9003,和php.ini中的要一致。
接着找到上面的php
这样表示成功了
回到主页编辑配置
这里点击路径映射,然后本地和远程路径对上就行
进行验证
这里前面忘记说了。根据实际情况选择后对应上即可。
OK 很纳闷是吧
重点来了,这里记得先开启监听,然后再点击验证
然后再次验证
完美搞定。
总结
踩了蛮多坑吧,因为我这个人有强迫症,最开始想要简单点,想用phpstudy搞,下载完后发现 一言难尽,
然后想着用本机的,但是环境变量很烦,要么就是版本不同,要么就是报错,又懒得修改环境变量,本来就是觉得麻烦才不想搞的,所以又作罢。
然后偶然发现mac用pd的window虚拟机虽然架构不同,phpstudy也能跑,但是bug也很多,也作罢。
坑点很多。
反正就是Windows十分钟解决战斗,M系列的Mac就看你心情了。
最终得到结论: M系列的Mac会惩罚每一个不爱折腾的网安人。
也希望能帮助到有需求的师傅。
参考文章
https://blog.csdn.net/sun_weitao/article/details/132832939
https://zhuanlan.zhihu.com/p/417585043
- 本文标题:Mac电脑M芯片+远程调试及Xdebug配置踩坑记录
- 创建时间:2024-03-31 14:06:55
- 本文链接:2024/03/31/Mac电脑M芯片+远程调试及Xdebug配置踩坑记录/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!