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优于Node.js的五大理由分享
Sep 15 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
PHP静态文件生成类实例
Nov 29 PHP
php header函数的常用http头设置
Jun 25 PHP
100多行PHP代码实现socks5代理服务器[2]
May 05 PHP
Yii视图CGridView实现操作按钮定义地址示例
Jul 14 PHP
基于php实现的验证码小程序
Dec 13 PHP
PHP new static 和 new self详解
Feb 19 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
PHP封装的page分页类定义与用法完整示例
Dec 24 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 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
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
玩转python爬虫之cookie使用方法
2016/02/17 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
python打开文件的方式有哪些
2020/06/29 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书