前言:
前边文章曾经介绍过载windows下php的debug(
phpstorm+Xdebug断点调试PHP
) ,mac下的配置流程是一模一样的,但是却碰到了各种波折也是够累的,碰到的坑现总结如下(其实二月份就写了一直没发),现在和大家分享出来。
步骤流程
一
. 下载并安装自己php版本对应的xdebug
二. 进行配置文件的一致修改,包括php.ini 与phpstorm配置,chrome的xdebug配置
三. 在程序中打断点,点击“臭虫”进行debug吧。
一.下载xdebug文件
1.将phpinfo();的信息全部输入网址中的框,得到适配的xdebug版本:
2.下载并解压
(自己知道版本的,不用上一步直接去下载,网址:
http://www.xdebug.org/download.php)
wget [下载地址] //如果不能使用wget,运行:[brew install wget];
sudo tar -zxvf xdebug-2.5.0.tgz
cd xdebug xdebug-2.5.0
3.编译完成得到xdebug.so
phpize
./configure --enable-xdebug --with-php-config=/usr/bin/php-config (正确配置php-config的路径)
make
4.把
/xdebug-2.5.0/modules/
里的xdebug.so文件移动到php扩展里
sudo find / -name xdebug.so //找到原来xdebug.so文件存放地址
得到存放.so配置文件的地址
/usr/lib/php/extensions/no-debug-non-zts-20131226
5.复制过去
cp /xdebug-2.5.0/modules/xdebug.so /usr/lib/php/extensions/no-debug-non-zts-20131226
6.重启apache
sudo apachectl restart
小插曲:
上边第五步复制移动的时候,失败了
提示:
cp: /usr/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so: Operation not permitted
原来是OSX 10.11 El Capitan(或更高)新添加了一个新的安全机制叫系统完整性保护System Integrity Protection (SIP),
所以对于目录/System /sbin /usr(不包含(/usr/local/)不能修改
得把它关掉才行,步骤:
a.重启电脑
b.按住Command + R (重新亮屏之后就开始按,出现苹果标志,ok)
c.菜单“实用工具” ==>> “终端” ==>> 输入csrutil disable;
执行后会输出:Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
d.再次重启系统
重启后,重复上边的步骤,再来一次
cp /xdebug-2.5.0/modules/xdebug.so /usr/lib/php/extensions/no-debug-non-zts-20131226
成功移动。
二. 相关文件的配置流程
1.配置php.ini
sudo vi /private/etc/php.ini
[xdebug]
zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host= localhost
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
sudo apachectl resrart //重启apache
查看phpinfo() 搜索xdebug看到了你下载的对应版本,说明安装成功。
查看phpinfo(); 显示安装和成功
2.配置phpstorm
- 进入File>Settings>PHP>Debug,看到XDebug选项卡,port填9000,其他默认
- 进入File>Settings>PHP>Debug>DBGp Proxy,IDE key 填 phpStorm,host 填localhost,port 填80
3.配置chrome的xdebug
a.安装chrome的debug
下载完拖入浏览器即可。
(或者越狱去chrome商店下载,搜索 xdebug,下载,安装)
b.运行
三.断点测试
这里不再赘述,详情可以参考windows下的调试过程:
1.
2.
3.
四。碰到的坑
故事小插曲,博主再调试过程中碰到的坑:
问题1:所有安装全部都正确,但就是无法xdebug,为何?
原来调试过windows下的xdebug,其实流程是一毛一样的,只是在php.ini设置那一步不一样,要指向dll变成.so文件,换操作系统的嘛大家都懂,但是就是死活调不通。
原因:自带xdebug.so版本不对,mac自带xdebug.so 为2.3版本(phpinfo中看),请安装上文提到的检测出来的版本对应的xdebug.so,我的是2。5的版本
问题2.:谷歌浏览器的xdebug插件死活启动不了,是灰色的。
alt+shift+x 启动它,但是不亮,后来经过测试,是因为我端口用了9100,别想太多了,乖乖先用9000就好了
问题3.:编译新版xdebug后移动xdebug.so失败
提示:Operation not permitted
原因:mac os的自我保护机制,把sip保护关掉。
五.相关文章:
mac os如何关闭sip保护机制:
http://blog.csdn.net/qq285744011/article/details/52810066
断点调试环境的配置
http://www.tuicool.com/articles/aiE322z
本文地址:http://blog.csdn.net/ty_hf/article/details/72081965