在使用PhpStorm调试程序中,自然而然的会使用的到断点调试,本文以此叙述如何在PhpStorm中使用断点调试功能,另外,由于笔者也是刚开始接触php,所以很多地方只是知其然而不知其所以然,如有不准确的地方,请不吝赐教。
如果大家有其他编程语言经验,自然对断点调试(断点调试是什么)应该比较清楚,在PhpStorm中断点调试亦是如此,不同的是也许在其他IDE中断点调试已经集成好了,而在此需要手动集成。
言归正传,我们假定大家都已经安装好了XAMPP和PhpStorm,Apache也起来了,网页也能正常访问🐻
首先,请大家先去phpinfo()的输出信息中查看一下能不能找到xdebug的内容,如果能,那么这一步直接跳过,否则,继续来吧。
- 首先,下载xdebug调试的核心文件xdebug.so
注意:请先检查/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
下是否已有xdebug.so文件,如果有,那么就可以直接跳到这一步最后的php.ini配置那里呦(2016啥啥的大家可能不一样,就是这么个样子的文件)。
因为xdebug.so要与我们当前的php版本相对应,所以建议大家手动编译一个,ok,我们开始探索如何搞到xdebug.so。
点我去官网搞一个xdebug.so
点击上边的链接,去查询适配的xdebug版本,打开后看起来是这样子的
第一步的信息来源于phpinfo()中的内容,直接选中拷贝过来就行,如下图所示:
截图不完整,大家从一开始就选中一直到第一部分php的介绍结束为止。
当大家把信息粘贴过去之后,然后点击第二步的按钮,就会为你生成一个分析及获取界面,就像下边一样:
上图是关键的一步,按照这个流程走完即可获得xdebug.so文件,然而不幸的是我们总会踩到坑,当然,我希望大家能平平安安的顺利获得。
第1步,下载,没啥好说的,点击下载就好了。
第2步,在终端切到下载文件所在目录,执行tar -xvzf xdebug-2.5.4.tgz
,应该也不会遇到问题,反正我没遇到😁。
第3步,切到解压后的目录,no problem,go on!
第4步,可能会遇到第一个坑,不过不要紧,这些坑都是连着的,后面还有一堆坑😂。在终端输入phpize后完事儿~
到这尴尬了,因为这里是调用的默认用户目录下的phpize,而我们是基于xampp中的php进行的操作,所以这里我们要使用绝对路径来操作,大家仔细翻看一下xampp的目录大概就能找到php的位置,/Applications/XAMPP/xamppfiles/bin/phpize
这是我的位置,大家参考,应该是一样的,在终端中执行该命令,运气好这一关就过了,然而总有运气不好的时候,就像下边一样:
好吧,没有autoconf,没办法,开始装autoconf吧,要想装autoconf,就要先装brew,当然,如果你已经有了,那就省事了,我们假设没有,那么首先就要在终端执行:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
(如果以上链接失效的话,可以到brew官网查看。http://brew.sh/)
等待brew安装好了之后,继续执行:
brew install autoconf
完事之后继续执行我们的/Applications/XAMPP/xamppfiles/bin/phpize
这下终于完成这一步了。
第5步,继续使用绝对路径来编译,当然,如果上一步没踩坑的同学要按照图上的步骤来。踩着坑的同学跟着我输入:
./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config
注意后面的路径,要跟自己的实际路径一样
到这一步,这一波坑终于过去了,前途是光明的😘。
第6步,在终端输入make
,嗯,老铁,没毛病。
第7步:这里按照图片的操作也可以,当然我是直接复制粘贴的,因为我被命令行伤透了心,找到当前目录下的modules文件夹,找到该文件夹下的xdebug.so(想说爱你不容易啊),狠狠的复制。
第8步,把这个东西粘贴到/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
这里来。
⬇️
xdebug.so探寻结束,开始配置php.ini
到/Applications/XAMPP/xamppfiles/etc/php.ini
目录中找到php.ini然后打开,在最后面添加如下
[xdebug]
zend_extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_mode="req"
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.idekey="PhpStorm"
xdebug.profiler_enable = Off
保存,然后重启Apache服务,重新输出phpinfo()信息,然后搜索一下,发现如下内容即告成功。
- 在PhpStorm中进行配置
command+,打开PhpStorm的配置列表。
首先,打开Language&Framework下的Debug,然后如图配置,这里的端口要和php.ini 里的xdebug.remote_port
保持一致。
接下来配置DBGp Proxy, port要和你的Apache端口一致。
然后是servers的配置,没有的同学可以点击+号创建一个,Host和Port根据你的实际情况来设置,我这里用的本地环境,大家也可以用测试环境。
接下来在调试页创建一个web application
填写必要的信息,保存后,最后打开电话监听的标志,就可以在网页中触发断点调试了。
最后,每一个过程都是一个不同的经历,希望大家能够顺利的完成操作,但是一但遇到不一样的突发情况,也希望大家能够静下心来,思索问题的解决办法,以上是我的操作过程,希望对大家有所帮助。