博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mac OS xDebug PhpStorm 快速配置
阅读量:6350 次
发布时间:2019-06-22

本文共 3108 字,大约阅读时间需要 10 分钟。

前言

在网上找了一些相关配置的例子,觉得很多比较复杂,并且配置项过于多了,有很多冗余并不是最开始就需要的配置,所以写一下记录,也方便以后自己查阅。

一、brew 安装 php

在 Mac OS 这边不需要手动去下载编译打包,直接使用 brew 进行快捷安装会比较方便管理,对于最原始的打包安装方式也可以,不过需要自己去创建一些 link 所以这里只记载 brew 的方式。

  1. 确定 brew 环境的干净。

  2. 确定 php 版本,这里是用 php54,如果有多版本切换的需求可以安装 php-versionbrew-php-select,前者是用 brew 可以安装,后者依赖 npm

  3. 安装 php54-xdebug,因为 xdebug 会有一个映射版本。

// 检测一下 brew 环境brew doctor// 升级一下 brewbrew update// 查看 brew 拥有的 tapbrew tap// 查看 brew 已安装的工具brew ls

doctor => 检测如下:

brew doctor

tap => 查看如下,主要是看一下 homebrew/php,不然到时候会输入全名比较麻烦:

brew tap

如果你发现是用 josegonzalez/php 出错,那么就可以 brew untap josegonzalez/php,因为之后应该都迁移到了统一的 homebrew/php 库中,然后需要检查 .zshrc ( 或者 .bashrc ) 文件的 PATH,记得重新修改为 homebrew/php。

brew install php54 php54-xdebug

这里安装比较简单,主要是要记得看清楚安装完后的配置信息提示,重要信息:

  • php.ini

  • auto start php

  • php 相关的一些路径

brew 的常规目录:

/usr/local/bin/usr/local/etc/usr/local/opt

这里安装应该不会出现什么问题,接下来配置 Apache 2 这里我用的是 Mac OS 自带的,如果有 Nginx 玩家也是一样的。

二、配置 Apache

sudo vi /etc/apache2/httpd.conf// 配置需要的解析模块LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so

这里主要会出现的问题就是之前已经有解析模块的情况,会默认使用最开始定义的解析模块,所以需要仔细查看是否定义重复了。

接下来是验证一下我们系统的 php 版本号和 php 解析是否正确:

Apache 的一些具体配置可以查看我之前写的

// 默认 Mac 的 php 位于 /usr/bin/php// 如果这里的版本号不是 php54,检查 PATHphp -v// curl 一下配置curl -IL http://127.0.0.1:80// 正常情况应该返回,主要是 php 的版本HTTP/1.1 200 OKDate: Sun, 21 Aug 2016 19:14:58 GMTServer: Apache/2.4.18 (Unix) PHP/5.4.45X-Powered-By: PHP/5.4.45Access-Control-Allow-Credentials: trueAccess-Control-Allow-Headers: PHPSESSIDContent-Type: text/html

当然,你也可以在网站目录建一个 php 文件,然后 phpinfo() 看一下具体配置。

三、配置 php.ini

因为 php 文件是动态的,所以 Web 服务器必然会去加载 php 解析器模块去理解文件,然后 php 的解析器的一些配置在 php.ini 中,所以该解析器就会去加载这个文件,最后得到执行环境。(这一步要优化的话应该是做一个类似缓存的机制,对于这种配置加载的性能提升)

所以我们在调试 php 必然是要在 php.ini 这里配置环境的接口。直接开始:

; prefix => /usr/local/etc/php/5.4/; 该参数是要加载的 xdebug.so 模块,具体是 ext 可以到; /usr/local/etc/php/5.4/ext 去查看详情,默认会有扩展的目录; 该配置配置于:conf.d/ext-xdebug.ini; zend_extension = ext/xdebug.so; 远程是否可以用,必须xdebug.remote_enable = on; 远程的 host,默认本地,然后可以配置为 vagrant 的地址xdebug.remote_host = 127.0.0.1; 使用非 9000 默认端口,9000 端口我失败了,所以最好改动一下,避免 fuckxdebug.remote_port = 9010; 使用 dbgp 做 80 端口代理xdebug.remote_handler = dbgp; 这里的 的 key 必须和到时候 IDE 中的一致xdebug.idekey = PHPSTORM; 输出的日志文件,个人觉得很重要xdebug.remote_log = /tmp/xdebug.log

2016-09-05 更新,主要是 xdebug.ini 相关

相关报错信息:

Failed loading ext/xdebug.so: dlopen(ext/xdebug.so, 9): image not found

(1)注释 php.ini 文件中的 zend_extension = ext/xdebug.so 改到 /usr/local/etc/php/5.4/conf.d/ext-xdebug.ini 中进行配置

(2)注释 ext-xdebug.iniphp54-xdebug 的相关配置
(3)最后 ext-xdebug.ini 中配置如下:

[xdebug]; prefix => /usr/local/etc/php/5.4/zend_extension = /usr/local/opt/php54-xdebug/xdebug.so

基本上上面的文件是刚需吧,然后必须要重启 Apache

sudo apachectl restart

四、配置 PhpStorm 工具

  • 先把 xdebug 的监听端口修改

xDebug

  • 然后设置 PHP dbgp 代理

这里必须和 php.ini 中的 key id 对应上哦,代理的是服务器地址和端口号

PHP KEY

  • 设置 servers 目录和服务器信息

    这里目录一定要设置正确,绝对目录映射

目录

  • 对 php 的基本设置,和 java jar 差不多的东西

(1) 先点开详情

开始

(2) 选择 php 的执行器目录

这里我选择的是软连接的目录,这样比较方便,可以在下面这里找到。

目录

配置结果,这里还可以检查一下 php.ini 改动正确没有:

选择

(3) 配置 PHP Web 应用的信息,主要是映射地址和默认浏览器

入口

详情

(4) 启动调试模式

  • 先打开最右边像电话一样的东西(应该是连通监听,如果没有高亮就等一会,phpstorm 初始化)

  • 选择我们配置的 Php Web Application

  • 点击爬虫(调试按钮)

启动调试

(5) 打个断点测试一下

断点测试

虽然比 Node 那边调试起来比较麻烦,不过能看到变量和详细信息还是值得,原理和 Chrome Listener 基本差不多,大家也可以对比配置。

原文出自博客:

转载地址:http://oktla.baihongyu.com/

你可能感兴趣的文章
1082: 敲7(多实例测试)
查看>>
ADMemberShip 尝试
查看>>
数据库实例创建好后,用plsql登录居然提示ora-12526监听程序:所有适用例程都处于受限模式的问题...
查看>>
【BZOJ4025】二分图
查看>>
leetcode-same tree
查看>>
通过AOP自定义注解实现日志管理
查看>>
UEFI+GPT双硬盘安装Win10+Ubuntu16.04双系统
查看>>
<c:if>条件判断 和 取值做乘法运算
查看>>
vdbench-自动化测试脚本
查看>>
javascript中arguments,callee,caller
查看>>
js下判断 iframe 是否加载完成的完美方法
查看>>
开发技巧-Java通过HttpProxy实现穿越
查看>>
protect golang source code
查看>>
设计模式之—代理模式
查看>>
Git Tutorial 7 - File States
查看>>
ti-link双路由器间的无线链接
查看>>
Excel生成报表之解决方案---簇状圆锥图
查看>>
算法导论-动态规划-装配线调度
查看>>
IBM Intel 微软
查看>>
使用C++11原子量实现自旋锁
查看>>