在 MacBook 上安装了 MAMP 开发环境,来调试一个 PHP 的网站项目。MAMP & MAMP Pro软件是一款很好的在MAC下面运行的网站集成环境软件,其由Apache+MySQL+PHP+动态DNS配置构成,PHP的版本可以动态切换到最新版,功能强大,配置简单,十分便于本地调试。
MAMP 设置一个虚拟主机及网站安装在 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 。
下载完成后系统会自动解压安装包文件。如果未自动解压,请手动解压或使用 unzip phpredis.zip 命令解压。
解压后使用 cd 命令进入 phpredis 目录:
cd phpredis/
注意:phpredis/ 目录的路径如果不对,请按照其在自己电脑上的完整路径来切换,如 ./phpredis-php7/。
三、使用 phpize 命令编译生成 configure 配置文件
1、phpize 命令:
此时终端显示的当前目录是 phpredis,在终端中执行以下命令:
/Applications/MAMP/bin/php/php7.2.10/bin/phpize --with-php-config=/Applications/MAMP/bin/php/php7.2.10/bin/php-config
如果出现此错误:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
则是因为此命令依赖 autoconf 工具,需要安装 autoconf 工具(参考第一步中的第2点)。
如果执行成功,会提示如下信息:
2、本步骤需要注意事项:
在这一步需要注意的一个问题是,在使用 phpize 编译命令时,一定要使用 /Applications/MAMP/bin/php/php7.2.10/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.10/bin/php-config
如果执行出错,提示“未找到指定目录”之类的信息,也是因为此命令依赖 autoconf 工具,需要安装 autoconf 工具(参考第一步中的第2点)。
如果执行成功,像这样:
2、编译与安装 phpredis 命令(make 是编译,make install 是安装)。
make && make install
安装成功后,这时会在 phpredis/modules 目录下生成了 redis.so 文件。同时 redis.so 会自动复制到/Applications/MAMP/bin/php/php7.2.10/lib/php/extensions/no-debug-non-zts-20171025/ 目录下(extensions 后面带日期部分的那一级目录可能会与我的不一样,请以自己电脑上的为准)。
网友评论