搭建phpstorm + xdebug审计环境

最开始想用lnmp的docker来搭建,然后发现配置完成后断点断不下来,后来换了mamp就断下来了,很奇怪。

安装xdebug:

在php的docker下

pecl install xdebug

安装失败提示没有php-devel包的时候

yum install php-devel

还是失败的时候,

yum search php56

找到php56的devel然后安装它。

会显示

You should add "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so" to php.ini

或者会提示你安装到了哪里,把路径记住后面加入php.ini配置文件

配置php.ini文件:

查看phpinfo或者php –ini找到php.ini路径

/usr/local/etc/php/php.ini中,
添加

其中remote_host是你的宿主机在内网的ip,端口填写一个不被占用的即可。

安装好后首先php -v查看是否有xdebug的版本,然后查看phpinfo是否开启了remote_enable,都显示了说明xdebug安装成功。

配置phpstorm:

首先添加一个docker,phpstorm在2017.1版本后在api url里可以直接填写unix:///var/run/docker.sock

然后配置php,在language里找到php,然后CLI interpreter里找到自己php的docker。

大部分时候回自动识别出xdebug的版本,但是我这里没有识别出来,在下面的extention处手动加了xdebug的so位置后识别成功,显示xdebug的版本

然后配置xdebug的端口,填写和上面php.ini处一样的端口,DBGp Proxy处也是一样的,servers处填写docker上的虚拟主机。

都配置完成后,在右上角新建一个remote debug,开启监听就可以在浏览器中调试了。

浏览器插件配置:

firefox直接搜索xdebug下载,然后更改IDE KEY为PHPSTORM

坑:

都配置好后发现浏览器怎么弄都断不下来断点,检查配置后发现都没有错误,考虑是docker里xdebug在与宿主机ide通讯的时候出现了问题,后面更换mamp以后成功断下来,关于mamp的配置就很简易了,我用的是mamp pro4.1,在php的设置界面勾选启用xdebug,然后在php版本的右边可以直接打开php.ini编辑,然后填写和上面一样的php.ini配置,但是remote_host要改为localhost,然后在phpstorm里把host都改为你mamp的hostname就可以了。mamp的功能确实强大而且简易。

关于用docker为什么配置不成功,我也不是很清楚,mac下的docker貌似在网络配置方面有些许的不同,如果有大佬知道的希望能告知一下。

参考文章:

https://www.virzz.com/2017/03/13/(%E6%96%B0)%E6%90%AD%E5%BB%BAPHPStorm%EF%BC%8BXDebug%E4%BB%A3%E7%A2%BC%E5%AF%A9%E8%A8%88%E7%92%B0%E5%A2%83.html

http://blog.chxj.name/setting-up-vitual-develop-environment-by-docker/

http://david-kerwick.github.io/2016/04/07/setting-up-xdebug.html