注意:软体的安装路径请参考自己环境的位置。
开发IDE JetBrains PhpStorm 2016.2
虚拟机安装的是 centos 6.5 nginx php5.4
nginx+php 站点配置 这地方就不详细介绍了。。
重点1 xdebug 的版本选择
本地虚拟机安装的是 PHP Version 5.4.21 如何知道PHP版本 麻烦去百度下。
xdebug 的下载地址 https://xdebug.org/download.php
根据自己的版本 复制 source 的版本包。
重点2 让php 支持 xdebug
#下载
wget https://xdebug.org/files/xdebug-2.4.1.tgz
#解压
tar -zxvf xdebug-2.4.1.tgz
#进入目录
cd xdebug-2.4.1
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make && make install
大伙看到了xdebug.so 文件生成OK 了 复制下地址 等下有用。
#打开php.ini 文件 配置xdebug 扩展
vim /etc/php.ini
#以下是 php.ini 的配置 加入这些
zend_extension= "/usr/local/webserver//php/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "192.168.1.41"
xdebug.remote_port = 9000
xdebug.idekey = "PHPSTORM"
xdebug.trace_output_dir = "/tmp"
xdebug.collect_vars = 1
xdebug.collect_return = 1
xdebug.collect_params = 1
xdebug.remote_autostart = 1
xdebug.show_exception_trace = 1
配置里面我要画重点了
路径是 zend_extension 不是 extension 这里两三句说不清 想了解的去这里
http://yangxikun.github.io/php/2016/07/10/php-zend-extension.html
重点配置说明下
xdebug.remote_enable = 1#远程调试打开
xdebug.remote_handler = "dbgp"#远程调试模式
#remote_host参数的值填写Dev 服务器(开发机器)的IP地址。
xdebug.remote_host = "192.168.1.41"
#remote_port填写9000,只要没有被其它程序占用,就可以了,可以不是9000。
xdebug.remote_port = 9000
#调试工具 等下你就知道了
xdebug.idekey = "PHPSTORM"
还有很多配置项目 百度下啰
加入好了 重启下php-fpm 简单粗暴的来
#结束所有
killall php-fpm
#启动
/usr/local/webserver/php/sbin/php-fpm -c /etc/php.ini -y /usr/local/webserver/php/etc/php-fpm.conf
到现在为止 我们php 已经扩展了 xdebug 。
重点3 接下来 就是 开发机器 工具的配置项目
我用的是谷歌浏览器 下载安装个插件 Xdebug helper
哎 扶梯 现在都是程序猿的标准技能了
插件配置 看到没 支持很多开发工具 key 是固定的 如果是其它开发工具 比如用的是subline 就选择其它 自己写个KEY
卧槽 这个key 有什么用 移步到上面去 xdebug.idekey = "PHPSTORM" 对就是这里 等下 开发工具中也要用到KEY 需要3个地方都统一哦。
好了浏览器配完成了 接下来 配置 开发工具 我用的是 PhpStorm 2016.2 其它开发工具的 这里就不介绍了
xdebug.remote_host = "192.168.1.41"
xdebug.remote_port = 9000
xdebug.idekey = "PHPSTORM"
对应关系
好了结束了 来一发 图片有点糙 对不住了
点开小电话
在点击开始小箭头
呼气了浏览器 浏览器的 小虫子图片点亮了
访问下你的程序页面就可以了
调试前
调试后
好了 xdebug 的功能远远不止这些 去发掘吧 。