CentOS下php配置xdebug调试


CentOS下php配置xdebug调试

有时候某些问题只在服务器上触发,如果log看不出什么原因,或者使用log效率低下就可以考虑配置xdebug直接进行调试

# 下载2.6.0版本
wget https://xdebug.org/files/xdebug-2.6.0.tgz
# 解压并进入目录
tar zxvf xdebug-2.6.0.tgz
cd xdebug-2.6.0
# 运行配置,我装的lnmp,php-config需要自行制定
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
# 编译
make
# 测试
make test
# 安装,
make install
# 显示结果,记住so路径
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

注意,如果make test出现错误”The test-suite requires that proc_open() is available.”,这时候需要编辑php.ini文件,找到disable_functions那一行, 删除proc_open。

安装完成之后打开php.ini配置xdebug调试,我配置了PhpStorm

[Xdebug]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey="PHPSTORM"

最后运行php -m|grep xdebug看是否成功

网上的一大堆教程写得很啰嗦,你看了一堆文字可能还没配置好,因为下面几点那些文章都没有说清楚:

1. Xdebug的配置remote_host,如果主机能直接访问你的电脑,直接配置你的电脑ip即可,否则配置127.0.0.1,通过ssh或者其他方法进行端口转发,将远程端口映射到你本地电脑
2. 如果采用PhpStorm调试,触发调试必须要加上debug session才行,也就是在url后面加上参数?XDEBUG_SESSION_START=xxx,这个xxx是你当前的PhpStorm的session
3. 远程调试的时候,要确保端口能正常访问,如果启用了防火墙需要添加通过规则,如果是云主机可能需要在安全策略里面开放端口。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://11000011.com/?id=83

« 上一篇 下一篇 »

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

主机推荐

  • 搬瓦工