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 创建标签云函数代码
May 26 PHP
深入php处理整数函数的详解
Jun 09 PHP
PHP代码优化的53个细节
Mar 03 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
ThinkPHP分页实例
Oct 15 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
php简单实现批量上传图片的方法
May 09 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 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
新52大事件
2020/03/03 欧美动漫
Zend的Registry机制的使用说明
2013/05/02 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
angular.element方法汇总
2015/01/07 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
Python Tkinter GUI编程入门介绍
2015/03/10 Python
讲解Python中的递归函数
2015/04/27 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
Python运行DLL文件的方法
2020/01/17 Python
如何在django中添加日志功能
2020/02/06 Python
如何在python中实现线性回归
2020/08/10 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
如何写好升职自荐信
2014/01/06 职场文书
员工考核管理制度
2014/02/02 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS