在MAC版MAMP环境下为PHP7.x安装redis扩展

在 MacBook 上安装了 MAMP 开发环境,来调试一个 PHP 的网站项目。MAMP & MAMP Pro软件是一款很好的在MAC下面运行的网站集成环境软件,其由Apache+MySQL+PHP+动态DNS配置构成,PHP的版本可以动态切换到最新版,功能强大,配置简单,十分便于本地调试。


u=2313372741,4256511677&fm=173&app=25&f=JPEG.jpeg

图:MAMP 设置一个虚拟主机及网站安装

后面他想在PHP7的版本下面安装Redis的扩展程序,以配合自己的程序开发。无奈在这位群友屡次安装失败之后,找到我希望来解脱他在面对 terminal(命令行)抛出的一大串错误消息时的痛苦。在这次的解决过程中自己也相当于完成了一次学习,现在就发现的问题和需要注意的事项写成一篇文章。

在 MAC 版 MAMP 环境下为 PHP7.x 安装 redis 扩展的过程。

一、首先解决一些安装依赖的问题

1、(Mac 电脑中已安装了 Homebrew 包管理器的可忽略此步)如果你的 MAC 电脑未安装有 Homebrew——一个包管理器,需要先安装 Homebrew 包管理器,后面步骤中的 ./configure 命令和安装 redis 服务端的命令等需要 brew 为其安装组件。

打开 terminal,安装 Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

将以上命令粘贴至终端(terminal),参考: https://brew.sh/index_zh-cn.html

脚本在执行过程中会有多次暂停,并说明将它将做什么;同时也会边执行、边需要联网下载资源,下载速度不会很快(因为是国内网络访问国外站点资源),请耐心等待安装完成。

2、(Mac 电脑中已安装了 configure 配置组件的可忽略此步)使用 brew 命令安装 configure 配置组件。

brew install autoconf wget

二、下载 php-redis 扩展组件的安装包

在终端中使用 git clone 命令下载 php-redis 扩展组件的安装包:

git clone https://github.com/nicolasff/phpredis.git

当然没有用 git 也没关系,可以自己去找官网下载:try https://github.com/nicolasff/phpredis.git

u=1639678433,1047096273&fm=173&app=25&f=JPEG.jpeg

图:在GitHub的phpredis仓库下载develo

下载完成后系统会自动解压安装包文件。如果未自动解压,请手动解压或使用 unzip phpredis.zip 命令解压。

解压后使用 cd 命令进入 phpredis 目录:

cd phpredis/

注意:phpredis/ 目录的路径如果不对,请按照其在自己电脑上的完整路径来切换,如 ./phpredis-php7/。

三、使用 phpize 命令编译生成 configure 配置文件

1、phpize 命令:

此时终端显示的当前目录是 phpredis,在终端中执行以下命令:

/Applications/MAMP/bin/php/php7.2.1/bin/phpize --with-php-config=/Applications/MAMP/bin/php/php7.2.1/bin/php-config

如果出现此错误:

Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.

则是因为此命令依赖 autoconf 工具,需要安装 autoconf 工具(参考第一步中的第2点)。

如果执行成功,会提示如下信息:

[图片上传失败...(image-5c9c98-1572966543736)]

图:phpize 命令执行成功截图。

2、本步骤需要注意事项:

在这一步需要注意的一个问题是,在使用 phpize 编译命令时,一定要使用 /Applications/MAMP/bin/php/php7.2.1/bin/phpize 这个应用程序 MAMP 下的 php7.x 的 bin 目录来执行 phpize。

因为 MAC 自带了 php 环境,可以使用 MAMP 将 php 配到命令行中,这时候你使用的 php -v 是 MAMP 加到环境变量的 php 版本,但是你如果直接使用 phpize 命令(未指定应用程序 MAMP 下的 php7.x 的 bin 目录的 phpize),那么 phpize 编译的将是系统自带的那个 php 环境,所以直接使用 phpize 编译扩展的时候,会编译到系统自带的 PHP 环境下,故而须注意在使用 phpize 命令时一定要使用的是全路径,而且上面的 php/php{版本}/ 目录路径有可能跟我的不一样,请自行核对并调整 。

四、配置、编译并安装 phpredis

1、配置 phpredis 命令。

此时终端显示的当前目录是 phpredis,在终端中执行以下命令:

./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.1/bin/php-config

如果执行出错,提示“未找到指定目录”之类的信息,也是因为此命令依赖 autoconf 工具,需要安装 autoconf 工具(参考第一步中的第2点)。

如果执行成功,像这样:

[图片上传失败...(image-d018cb-1572966543736)]

图:./configure 命令执行成功截图。

2、编译与安装 phpredis 命令(make 是编译,make install 是安装)。

make && make install

安装成功后,这时会在 phpredis/modules 目录下生成了 redis.so 文件。同时 redis.so 会自动复制到/Applications/MAMP/bin/php/php7.0.8/lib/php/extensions/no-debug-non-zts-20171025/ 目录下(extensions 后面带日期部分的那一级目录可能会与我的不一样,请以自己电脑上的为准)。如果该目录下不存在 redis.so,可手动将 phpredis/modules 目录下的 redis.so 复制过去。至此,phpredis 扩展已安装成功。

五、修改 php.ini

如果直接在对应php版本中修改php.ini会失效(这里遇到个坑),建议在 MAMP Pro 软件中打开 php.ini 文件并修改,因为在终端中使用 vim 命令编辑 php.ini 文件或手动打开编辑 php.ini 文件保存后可能不会起作用,所以建议在 MAMP Pro 软件中打开 php.ini 文件并修改:

[图片上传失败...(image-a26322-1572966543736)]

图:MAMP 中打开 php.ini。

在 php.ini 中搜索 "extension=",在后面添加一行:"extension=redis.so",保存后重启 MAMP。

[图片上传失败...(image-ee37cd-1572966543736)]

图:修改 php.ini 文件。

六、检查 redis 组件是否安装成功

新建一个 phpinfoTest.php 文件,输入:

<?php phpinfo(); ?>

保存后运行,查看是否有 redis 关键字:

[图片上传失败...(image-778a21-1572966543736)]

图:phpinfo 中的 redis 信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342