MacOS 14 搭建 PHP7.4 + Xdebug开发环境

摘要

项目使用的技术栈:PHP 7.4.33、ThinkPHP 5.1.27、Redis、MySQL
由于MacOS预装的PHP版本较高,所以需要降级
IDE 使用 PhpStorm 2023.2.3

1. 安装PHP 7.4.33

MacOS 14中的brew版本比较高,没有低版本的PHP

brew install shivammathur/php/php@7.4-debug

2. 切换版本

#断开链接php8.3版本
brew unlink php@8.3
#链接php7.4版本
brew link php@7.4-debug

3. 安装xdebug模块

3.1 确认xdebug版本

将phpinfo()粘贴到xdebug提供的安装向导页面 Installation Wizard
image.png

3.2 安装xdebug

根据上一步中分析的结果,安装对应版本的xdebug
image.png

4. 安装Redis模块

4.1 下载Redis模块的源码包

地址:http://pecl.php.net/package/redis

4.2 安装

解压缩后进入目录
Downloads/redis-5.0.2/redis-5.0.2

liyang@liyangdeMBP redis-5.0.2 % ll
total 3656
drwxr-xr-x@ 56 liyang  staff    1792  4  3 09:48 ./
drwxr-xr-x@  5 liyang  staff     160  4  3 09:42 ../
drwxr-xr-x  14 liyang  staff     448  4  3 09:48 .libs/
-rw-r--r--@  1 liyang  staff    3218  7 29  2019 COPYING
-rw-r--r--@  1 liyang  staff     204  7 29  2019 CREDITS
-rw-r--r--@  1 liyang  staff    3602  7 29  2019 INSTALL.markdown
-rw-r--r--   1 liyang  staff   11894  4  3 09:48 Makefile
-rw-r--r--   1 liyang  staff       0  4  3 09:48 Makefile.fragments
-rw-r--r--   1 liyang  staff    2802  4  3 09:48 Makefile.objects
-rw-r--r--@  1 liyang  staff  119355  7 29  2019 README.markdown
-rw-r--r--@  1 liyang  staff   10019  7 29  2019 arrays.markdown
drwxr-xr-x   7 liyang  staff     224  4  3 09:45 autom4te.cache/
drwxr-xr-x  13 liyang  staff     416  4  3 09:45 build/
-rw-r--r--@  1 liyang  staff   10988  7 29  2019 cluster.markdown
-rw-r--r--@  1 liyang  staff   83920  7 29  2019 cluster_library.c
-rw-r--r--@  1 liyang  staff   18106  7 29  2019 cluster_library.h
-rw-r--r--   1 liyang  staff     321  4  3 09:48 cluster_library.lo
-rw-r--r--@  1 liyang  staff   19955  7 29  2019 common.h
-rw-r--r--   1 liyang  staff    2131  4  3 09:45 config.h
-rw-r--r--   1 liyang  staff    2006  4  3 09:48 config.h.in
-rw-r--r--   1 liyang  staff   18298  4  3 09:48 config.log
-rw-r--r--@  1 liyang  staff    7802  7 29  2019 config.m4
-rwxr-xr-x   1 liyang  staff     139  4  3 09:48 config.nice*
-rwxr-xr-x   1 liyang  staff   21221  4  3 09:48 config.status*
-rw-r--r--@  1 liyang  staff     923  7 29  2019 config.w32
-rwxr-xr-x   1 liyang  staff  475668  4  3 09:45 configure*
-rw-r--r--   1 liyang  staff    5082  4  3 09:45 configure.ac
-rw-r--r--@  1 liyang  staff    4483  7 29  2019 crc16.h
drwxr-xr-x   2 liyang  staff      64  4  3 09:45 include/
drwxr-xr-x@  8 liyang  staff     256  4  3 09:42 liblzf/
-rw-r--r--@  1 liyang  staff   78234  7 29  2019 library.c
-rw-r--r--@  1 liyang  staff    8056  7 29  2019 library.h
-rw-r--r--   1 liyang  staff     305  4  3 09:48 library.lo
-rwxr-xr-x   1 liyang  staff  211007  4  3 09:48 libtool*
drwxr-xr-x   3 liyang  staff      96  4  3 09:48 modules/
-rw-r--r--@  1 liyang  staff    8509  7 29  2019 php_redis.h
-rw-r--r--@  1 liyang  staff  116912  7 29  2019 redis.c
-rw-r--r--   1 liyang  staff     802  4  3 09:48 redis.la
-rw-r--r--   1 liyang  staff     301  4  3 09:48 redis.lo
-rw-r--r--@  1 liyang  staff   40509  7 29  2019 redis_array.c
-rw-r--r--@  1 liyang  staff    2281  7 29  2019 redis_array.h
-rw-r--r--   1 liyang  staff     313  4  3 09:48 redis_array.lo
-rw-r--r--@  1 liyang  staff   40728  7 29  2019 redis_array_impl.c
-rw-r--r--@  1 liyang  staff    1350  7 29  2019 redis_array_impl.h
-rw-r--r--   1 liyang  staff     323  4  3 09:48 redis_array_impl.lo
-rw-r--r--@  1 liyang  staff  106555  7 29  2019 redis_cluster.c
-rw-r--r--@  1 liyang  staff   10438  7 29  2019 redis_cluster.h
-rw-r--r--   1 liyang  staff     317  4  3 09:48 redis_cluster.lo
-rw-r--r--@  1 liyang  staff  130272  7 29  2019 redis_commands.c
-rw-r--r--@  1 liyang  staff   13712  7 29  2019 redis_commands.h
-rw-r--r--   1 liyang  staff     319  4  3 09:48 redis_commands.lo
-rw-r--r--@  1 liyang  staff   35238  7 29  2019 redis_session.c
-rw-r--r--@  1 liyang  staff     511  7 29  2019 redis_session.h
-rw-r--r--   1 liyang  staff     317  4  3 09:48 redis_session.lo
-r-xr-xr-x   1 liyang  staff  127055  4  3 09:45 run-tests.php*
drwxr-xr-x@ 12 liyang  staff     384  4  3 09:42 tests/

按顺序执行命令

liyang@liyangdeMBP redis-5.0.2 % phpize
liyang@liyangdeMBP redis-5.0.2 % ./configure --with-php-config=/opt/homebrew/Cellar/php@7.4-debug/7.4.33_6/bin/php-config
liyang@liyangdeMBP redis-5.0.2 % make && make install

5. 修改php.ini配置

增加xdebug和Redis扩展

zend_extension = "/opt/homebrew/lib/php/pecl/20190902-debug/xdebug.so"
xdebug.remote_handler="dbgp"
xdebug.client_host=localhost
xdebug.client_port=9001
xdebug.idekey=phpstorm
xdebug.start_with_request=yes
xdebug.mode=debugextension="/opt/homebrew/lib/php/pecl/20190902-debug/redis.so"

6. 配置PhpStorm,使可以debug

6.1 配置PHP解释器

image.png

6.2 配置xdebug端口

端口应该和php.ini中的一致
image.png

6.3 配置DBGp代理

这里的ide键就是php.ini文件中的xdebug.idekey的值
image.png

参考

PECL::Package::redis
mac 安装php扩展(redis为例)
在 macOS 上的多个 PHP 版本之间切换
# Installation Wizard
手把手完成mac下配置phpstorm的xdebug3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/790752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何保证缓存和数据库一致性----缓存双删

如何保证缓存和数据库的一致性 a.缓存双删:修改前删,修改后删,可以用aop去实现(不能保证一致性) b.或者根据业务场景去看,需不需要满足强一致性 c.对强一致性要求特别高需要加业务锁,只要有修改…

基于单片机的汽车尾灯控制系统设计

**单片机设计介绍,基于单片机的汽车尾灯控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的汽车尾灯控制系统设计概要主要涵盖利用单片机技术实现对汽车尾灯的智能控制。下面将从系统构成、工作…

C++函数匹配机制

函数匹配 在大多数情况下,我们容易确定某次调用应该选用哪个重载函数。 然而,当几个重载函数的形参数量相等以及某些形参的类型可以由其他类型转换得来时,这项工作就不那么容易了。 以下面这组函数及其调用为例: void f(); vo…

013——超声波模块驱动开发(基于I.MX6uLL与SR04)

目录 一、 模块介绍 1.1 产品特色 1.2 产品实物图 1.3 接口定义 1.4 测距调节 1.5 模块工作原理 1.6 注意 二、 编码思路 三、 驱动程序 四、 应用程序 五、 Makefile 六、 其它及实验 一、 模块介绍 超声波测距模块是利用超声波来测距。模块先发送超声波&#xf…

gitlab代码迁移,包含历史提交记录、标签、分支

1、克隆现有的GitLab仓库(http://localhost:8888/aa/bb/cc.git)到本地,包括所有分支和标签 git clone --bare http://localhost:8888/aa/bb/cc.git 2、在gitlab上创建一个空的仓库(http://localhost:7777/aa/bb/cc.git&#xff…

微服务连接不上rabbitmq解决

1.把端口port: 15672改成port:5672 2:virtual-host: my_vhost一定对应上

Android Studio 打开Logcat界面

在平时调试过程中查看调试日志需要打开 Android Studio Logcat界面。 每次安装AS都会忘记,自己备注一下。 AS->View->Tool Windows->Logcat

借助ChatGPT写作:打造学术论文中的亮点与互动

ChatGPT无限次数:点击直达 打造学术论文中的亮点与互动 引言 学术论文是学术界交流思想、探讨问题和展示研究成果的重要形式。如何使学术论文在众多作品中脱颖而出,吸引读者的眼球并激发互动,是每位研究者都关注的问题。本文将介绍如何借助ChatGPT这一…

redis-事务使用方法

一,redis-事务是否拥有原子性 Redis的单条命令是保证原子性的,但是redis事务不能保证原子性 Redis事务本质:一组命令的集合。----------------- 队列 set set set 执行 -------------------事务中每条命令都会被序列化,执行过…

C#面:.NET 中读写 XML 的类归属于哪些命名空间

在 .NET 中,读写 XML 的类主要归属于 System.Xml 命名空间。 该命名空间提供了一系列用于处理 XML 的类和接口,包括但不限于以下几个常用的类: XmlDocument:表示一个XML文档,可以用于加载、创建、修改和保存XML文档。…

AR/VR技术对制造业劳动力危机的影响

借助 AR/VR 的力量缩小现代制造业的技能差距 数字化转型仍然是企业的首要任务,其许多方面都需要人工干预。然而,推动此类举措所需的技术工人日益短缺。这就造成了我们所说的“制造业劳动力危机”。 制造业应当如何: 制造业用工危机正在影响…

Anu Has a Function

题目链接 Codeforces Round 618 (Div. 1) A. Anu Has a Function 思路: 我们把每个二进制位上的 1 1 1 看作是集合的不同的元素,二进制的位运算(按位与,按位或,按位异或)其实可以看作是集合上的与或异或…

uniapp微信小程序真机图片不显示

不同设备可能出现部分设备显示不了图片,解决办法:图片地址直接使用,不要拼接: https://images.weserv.nl/?urlhttp

无法打开pycharm虚拟环境

问题:在pycharm的terminal中执行pip命令,但是下载的包没有安装到该项目的虚拟环境中。 激活虚拟环境,打开terminal,执行myenv\Scripts\activate,显示执行出错 无法加载文件 D:\Project\RF_Project\venv\Scripts\acti…

如何在Java中,使用jackson实现json缩进美化

导入的maven依赖 <!--json--> <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.10.0</version> </dependency>示例代码 json要是String类型 public…

数据库管理工具 DBeaverUE for Mac激活版

DBeaverUE for Mac是一款功能强大且易于使用的数据库管理工具&#xff0c;专为Mac用户设计。它支持多种数据库类型&#xff0c;如MySQL、PostgreSQL、Oracle等&#xff0c;使得用户可以轻松管理和操作各种数据库。 软件下载&#xff1a;DBeaverUE for Mac激活版下载 DBeaverUE …

Node.js介绍

Node.js 是一个开源和跨平台的 JavaScript 运行时环境。它是几乎任何类型的项目的流行工具&#xff01;

[C#]使用OpencvSharp去除面积较小的连通域

【C介绍】 关于opencv实现有比较好的算法&#xff0c;可以参考这个博客OpenCV去除面积较小的连通域_c#opencv 筛选小面积区域-CSDN博客 但是没有对应opencvsharp实现同类算法&#xff0c;为了照顾懂C#编程同学们&#xff0c;因此将 去除面积较小的连通域算法转成C#代码。 方…

Django複習總結

①Django是框架。那麼什麼是框架&#xff1a; 框架很像是一個骨架&#xff0c;帶有很多默認器官的骨架。我們可以根據需要改寫、複寫這些器官。 從而實現自己所需要的功能。 ②Django是MVC模型\MVT模型&#xff1a; MVC模型&#xff1a;M&#xff1a;models模型層 V&#…

uni-app开发微信小程序使用BLE低功耗蓝牙正确步骤

文章目录 前言连接逻辑建议 参考资料&#xff1a;https://www.hc01.com/downloads 前言 微信小程序通过蓝牙连接设备&#xff0c;所以需要使用到BLE连接。 思路&#xff1a; 小程序连接BLE的步骤已经知道设备的BLE名称、服务id、特征值ID。需要根据蓝牙模块提供商的说明书去…