PHP远程调试之XDEBUG


Posted in PHP onDecember 29, 2015

开发的时候我都是使用XDebug在本地调试,但是最近加入一些项目中去,环境太复杂了,要在本地搭建一个开发环境真的太麻烦了,那么我们怎么使用xdebug来远程调试呢?

我这里使用虚拟机搭建了一个模拟环境来实验说明:

1.虚拟机IP:192.168.174.130 ,虚拟机用于搭建lampp环境

2.实体机IP:192.168.174.1,这个是IDE的开发环境。

首先我在虚拟机里面安装了一个lampp,而且增加了一vhosts,具体如下:

vim /opt/lampp/etc/extra/httpd-vhosts.conf
<VirtualHost *:80>
  ServerAdmin webmaster@dummy-host.example.com
  DocumentRoot "/data/web"
    <Directory "/data/web">
        Options All
        AllowOverride All
        Require all granted
    </Directory>
  ServerName www.test.com
  ErrorLog "test-error_log"
  CustomLog "test-access_log" common
</VirtualHost>

这里为了方便给vhosts设置一个域名,这个需要修改实体机的/etc/hosts后才能访问:

192.168.174.130    www.test.com

关键的一步我们需要设置虚拟机中的php.ini来支持xdebug远程调试,增加了如下代码:

vim /opt/lampp/etc/php.ini
zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
[xdebug]
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=192.168.174.130
xdebug.remote_port=9000
xdebug.remote_connect_back=1
xdebug.remote_autostart=1

最关键的两个设置xdebug.remote_host和xdebug.remote_connect_back,remote_host要设置成服务器的ip,remote_connect_back要设置成1或者on

到这里,服务端就设置好了,接下来我们来设置ide了,请原谅我是一个ide工具党。我使用的Intellij IDEA,而PHPStorm的设置也是一样的。

第一设置项目的server

PHP远程调试之XDEBUG

在Host那里要填上,能够正常访问到虚拟机服务器的地址,我们之前设置的虚拟域名是www.test.com,所以我图上也是写得这个。

最关键的设置地方就是要勾上这个路径映射,然后将需要调试的文件写上它在服务器上的路径,比如我这里需要调试a.php,而在虚拟机服务器上我们设置的web目录是/data/web/,那么它映射的路径就应该是/data/web/a.php了。

一切设置好了以后,就可以像本地调试那样开始了。

PHP远程调试之XDEBUG

OK了,没有什么技术含量,但希望能帮到需要的朋友,注意把文章中得ip地址,修改你自己的服务器的地址。

以上内容给大家分享了PHP远程调试之XDEBUG的相关知识,希望大家喜欢。

PHP 相关文章推荐
常用的php对象类型判断
Aug 27 PHP
IP138 IP地址查询小偷实现代码
Feb 15 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
最准确的php截取字符串长度函数
Oct 29 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 04 PHP
从性能方面考虑PHP下载远程文件的3种方法
Dec 29 #PHP
Yii快速入门经典教程
Dec 28 #PHP
WordPress主题制作之模板文件的引入方法
Dec 28 #PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 #PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 #PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 #PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 #PHP
You might like
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
node中的session的具体使用
2018/09/14 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
python定时执行指定函数的方法
2015/05/27 Python
Python功能键的读取方法
2015/05/28 Python
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
简单介绍Object类的功能、常用方法
2013/10/02 面试题
怎样写演讲稿
2014/01/04 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
研究生给导师的自荐信
2015/03/06 职场文书