mac 安装php redis扩展

本文详细介绍了在Mac环境中从源文件安装PHP Redis扩展的过程,包括下载、解压、编译源文件,配置php.ini,重启Apache等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

原文连接:https://segmentfault.com/a/1190000008866945

1. 下载源文件:

  • 这里就会有个问题,到哪里下载呢 - -
  • 答案是 php的官方扩展库--pecl
  • 打开 pecl网站 是可以在上面直接通过浏览器下载的,但是我们为了装逼,我们要用命令行下载! - -
  • wget https://pecl.php.net/get/redis-3.1.2.tgz
  • 但是当我们执行上面的命令会出现如下提示
  • -bash: wget: command not found
  • 装逼失败。。。mac默认没有wget命令- -
  • 网上有多种方法,比方说用homebrew 安装 wget,那我们又要去装homebrew....我选择拒绝,mac 没有 wget 但是她有 curl
  • 所以我们的命令变成
  • curl https://pecl.php.net/get/redis-3.1.2.tgz
  • 但是如果你真的这样去敲命令,你又上当了--
  • 因为curl 需要用 -o 参数指定一下输出的文件名称,不然。。。反正就显示一堆乱码,下载不成功(别问我为什么知道...)
  • 所以最后我的究极下载命令变成了 (别问我为什么要用sudo....):
  • sudo curl -o php-redis-3.1.2.tgz https://pecl.php.net/get/redis-3.1.2.tgz(加粗是一种体贴)

2. 解压源文件:

  • 同样这里也有问题,怎么解压呢--
  • 我们来 百度一下
  • 通过学习我们知道我们应该用 tar -xzf 命令,解压.tgz 后缀的文件
  • sudo tar -xzf php-redis-3.1.2.tgz
  • 我们看到 redis-3.1.2 文件夹,说明解压成功

3. 编译源文件

  • 终于到了编译了。。。美滋滋:
  • 先进入目录: cd redis-3.1.2
  • 运行phpize命令生成配置文件:sudo phpize
    • 这时如果没有安装m4 和 autoconf的话会提示如下错误:
    • Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script
    • 那我们来安装一下,命令如下(执行命令不要急,一个个来):

su - cd /usr/local curl -o m4-1.4.16.tar.gz http://ftp.gnu.org/gnu/m4/m4- 1.4.16.tar.gz tar -zvxf m4-1.4.16.tar.gz cd m4-1.4.16/ ./configure && make && make install cd ../ curl -o autoconf-2.62.tar.gz http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz tar -zvxf autoconf-2.62.tar.gz cd autoconf-2.62/ ./configure && make && make install

    • 安装完成后,我们再去redis 目录去 执行 phpsize(因为我们现在已经切换到root 账号就不需要 sudo了)发现没有报错了。

Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226

  • 运行./configure:
    • 需要找一下php-config的位置:
    • which php-conifg
    • 我本地的位置是:
    • /usr/bin/php-config
    • 所以我们执行的命令是: 

./configure --with-php-config=/usr/bin/php-config

  • 编译 执行命令: make
  • 安装 执行命令: make install
    • 这时程序会讲编译好的.so 文件拷贝到php默认的扩展文件夹下面
    • 但是mac的 /usr 文件下的有些目录 root 账户也没有写权限,所以会报错
    • 这时 需要 重启电脑 按住 command + r 进入安全模式,打开终端 csrutil disable 将 csrutil 这个功能禁用掉,这样root就有权限了,重新执行命令,得到如下结果:

Libraries have been installed in: /usr/local/redis-3.1.2/modules ........ Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20131226/

4. 配置php.ini

  • 再php.ini中添加:extension = redis.so

5. 重启apache

6. 查看phpinfo()

  • 在命令行输入:php -m|grep redis
  • 可以看到:redis

打完,收功!

<think>我们正在处理用户的问题:用户想要使用Homebrew安装PHPRedis扩展。 根据引用内容,我们知道有两种PHPRedis驱动:phpredis(C扩展)和predisPHP库)。用户明确提到了使用Homebrew安装扩展,因此我们关注phpredis安装。 然而,根据引用[2]和[3],在2018年3月之后,Homebrew不再维护专门的PHP扩展tap(homebrew/php)。因此,我们不能直接使用`brew install phpredis`这样的命令。 引用[2]和[3]提供了两种方法: 1. 使用源码编译安装(引用[2]的步骤) 2. 使用brew安装其他维护的tap(但引用[3]提到brew services restart php@7.4,说明可能是通过brew安装php,然后通过pecl安装扩展) 但是,我们注意到引用[3]的标题是“Mac 使用brew安装phpredis扩展”,但实际步骤中并没有直接使用brew安装扩展,而是通过pecl?实际上,步骤中提到了使用brew安装php后,使用pecl安装扩展。 然而,用户要求使用Homebrew,所以我们需要考虑是否有一个新的tap或者现在是否有新的方式。 经过搜索,我们发现目前(2023年)可以通过以下方式: - 使用`pecl`安装(推荐,因为Homebrew不再维护PHP扩展) - 或者,使用第三方tap(但官方不再维护,所以不推荐) 但是,用户坚持使用Homebrew,那么我们需要明确:现在Homebrew core中可能没有phpredis扩展。因此,我们需要告诉用户,直接使用brew安装phpredis扩展已经不可行,但我们可以通过brew安装php,然后使用pecl安装phpredis。 步骤: 1. 使用brew安装php(如果还没有安装) 2. 使用pecl安装phpredis(pecl是php扩展安装工具,通常随php一起安装) 但是,我们也可以看到引用[2]中提供了源码安装的方式。 因此,我们提供两种方法: 方法一:使用pecl安装(推荐,因为简单) 方法二:源码编译安装(如果pecl不可用,或者需要特定版本) 根据引用[3]中的步骤,我们可以整理出使用pecl安装的步骤(但需要先确保pecl可用): - 首先,使用brew安装php(假设用户使用php7.4,但可以根据实际情况调整) - 然后,使用pecl安装redis扩展 - 最后,修改php.ini文件,加载扩展 但是,引用[2]中提到了使用源码安装的步骤,并且引用[3]中提到了重启php-fpm。 因此,我们给出以下步骤: 方法一:使用pecl安装 1. 确保已经通过brew安装php(例如:`brew install php@7.4`) 2. 将brew安装php的bin目录加入PATH,以便使用正确的pecl(例如:`echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc` 然后 `source ~/.zshrc`) 3. 运行:`pecl install redis` 4. 在php.ini文件中添加一行:`extension=redis.so` - 如何找到php.ini?可以使用`php --ini`查看 5. 重启php-fpm(如果使用brew安装php,通常使用`brew services restart php@7.4`) 方法二:源码编译安装(如果pecl安装失败) 1. 克隆phpredis源码:`git clone https://github.com/phpredis/phpredis.git` 2. 进入目录:`cd phpredis` 3. 执行`phpize`(需要确保phpize在PATH中,即上一步中已经将brew安装php的bin加入PATH) 4. 执行`./configure` 5. 执行`make` 6. 执行`make install` 7. 在php.ini中添加:`extension=redis.so` 8. 重启php-fpm 注意:在引用[4]中有一个错误的LaTeX公式,我们忽略它。 因此,我们给用户的回答应该包括这两种方法,并推荐使用pecl安装。 另外,我们还需要注意用户可能没有安装php,所以需要先安装php。 最后,我们生成相关问题。 注意:回答中引用的段落末尾自然地添加引用标识。</think>### 使用 Homebrew 安装 PHPRedis 扩展指南 由于 Homebrew 官方已停止维护 PHP 扩展仓库(`homebrew/php`),无法直接通过 `brew install` 安装 Redis 扩展。以下是两种替代方案: --- ### 方案一:通过 PECL 安装(推荐) 1. **安装 PHP**(若未安装) ```bash brew install php@7.4 # 以 PHP 7.4 为例 ``` 2. **配置环境变量** 将 PHP 路径加入 `PATH`(以 Zsh 为例): ```bash echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc source ~/.zshrc ``` 3. **安装 Redis 扩展** ```bash pecl install redis ``` 安装过程选择默认选项(直接按回车)。 4. **启用扩展** 在 `php.ini` 中添加: ```ini extension=redis.so ``` 配置文件路径可通过 `php --ini` 查看。 5. **重启服务** ```bash brew services restart php@7.4 ``` 6. **验证安装** ```bash php -m | grep redis # 应输出 "redis" ``` --- ### 方案二:源码编译安装 1. **克隆源码** ```bash git clone https://github.com/phpredis/phpredis.git cd phpredis ``` 2. **编译安装** ```bash phpize ./configure make && make install ``` 3. **启用扩展** 在 `php.ini` 中添加: ```ini extension=redis.so ``` 4. **重启服务** ```bash brew services restart php@7.4 ``` --- ### 关键说明 1. **PHP 版本兼容性** 需确保扩展版本与 PHP 版本匹配(如 `php@7.4` 对应 `pecl install redis` 的兼容版本)[^2][^3]。 2. **扩展加载路径** 若 `make install` 后未自动配置,可在 `php.ini` 指定完整路径: ```ini extension=/usr/local/lib/php/pecl/20190902/redis.so ``` 3. **性能对比** `phpredis`(C 扩展)比 `predis`(PHP 库)性能更高,适合生产环境[^1]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值