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

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

图片.png

图: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

图片.png

图:在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点)。

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

图片.png

图: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点)。

如果执行成功,像这样:

图片.png

图:./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

建议在 MAMP Pro 软件中打开 php.ini 文件并修改,因为在终端中使用 vim 命令编辑 php.ini 文件或手动打开编辑 php.ini 文件保存后可能不会起作用,所以建议在 MAMP Pro 软件中打开 php.ini 文件并修改:

图片.png

图:MAMP 中打开 php.ini。

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

图片.png

图:修改 php.ini 文件。

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

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

<?php phpinfo(); ?>

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

图片.png

图:phpinfo 中的 redis 信息。

七、测试 redis

1、如果你的 MAC 电脑上尚未安装 redis 服务端 ,可用 brew 安装 redis 服务端程序,很方便:

brew install redis //安装 redis 服务端程序redis-server /usr/local/etc/redis.conf //启动 redis 服务端进程redis-cli ping //使用 redis-cli 命令启动 redis 客户端通信

如果你想要开机自启动 redis 服务,你可以将 redis 加入到系统的自启动服务中去:

brew services start redis

2、测试 redis 缓存是否起作用

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

<?php
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('test',"hello world");
$result = $redis->get('test');
var_dump($result);
?>

如果执行上边的 php 文件还是不能执行,请看 6379 端口开了吗,或者先关闭再开启 redis-server:

redis-cli -p 6379 shutdown // 关闭 redis 服务

正常情况会输出:string(11) “hello world”,如图:

图片.png

图:成功,泪崩!

结束语

至此,在 MAC 版 MAMP 环境下为 PHP7.x 安装 redis 扩展的实操过程分享完毕,送给有需要的人!

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

推荐阅读更多精彩内容