其实类似 xdebug 在 phpStorm 的调试文件一搜一大把,这里简单的总结下,主要是适合使用 swoole 开发的人。

本地调试的设置方法

第1步

在 Run 菜单中点击 Edit Configurations,然后点击最左侧 + 按钮,选择 PHP Script。

第2步

Configuration 的 File 参数就选择 swoole 的启动文件,Arguments 输入你这个启动文件的参数,没有的话就留空,名字自己设定

完成

然后点击保存,如果 phpStorm 提示找不到php命令的话你设置下路径就好了。

这个时候在窗口的右上角就会有一个可以调试的按钮,这个时候在要断点的位置打上打断,启动调试就可以了。


远程调试设置

当脚本在服务器上运行时,就需要用到远程调试了(也适用于本机调试)远程调试设置方法如下:

第1步

打开设置面板,找到 Languages & Frameworks -> PHP -> Servers。点击 + 号添加,Host 填需要调试的服务器的ip,端口填 xdebug 的 remote_port (ini中默认为 9000,这个值远程服务器启动命令上是可以设置的)

如果服务器上代码路径和本地路径不一致的话,需要勾选 “Use path mappings”,然后主项目路径后的 Absolute path on the server 填一下对应服务器的路径,设置好后保存。

第2步

设置时候继续设置,同本地是设置,在 Run 菜单中点击 Edit Configurations 点击添加按钮,选择 php remote debug。servers 就选择刚刚添加的那个。网上文档都有说 ide key 要填个 PHPSTORM 什么的,其实可以不用填,因为 swoole 起的服务器并不是传统的 web 服务器。

第3步

设置好了后,记得在swoole的启动命令上加上参数:

-dxdebug.remote_autostart=1 -dxdebug.remote_host=192.168.1.2 -dxdebug.remote_port=9100 -dxdebug.remote_enable=1

, 例如:

php -dxdebug.remote_autostart=1 -dxdebug.remote_host=192.168.1.2 -dxdebug.remote_port=9100 -dxdebug.remote_enable=1 server.php -vvv

其中 remote_host 是服务器 ip,remote_port 是 xdebug 的调试端口,千万别暴露给外网。当然,这些参数是可以在 php.ini 中直接设置的,如果设置好了,可以不带这些参数直接启动的。


参阅