资讯专栏INFORMATION COLUMN

mac下编译安装php redis扩展

tulayang / 3153人阅读

摘要:下编译安装扩展下载源文件这里就会有个问题,到哪里下载呢答案是的官方扩展库打开网站是可以在上面直接通过浏览器下载的,但是我们为了装逼,我们要用命令行下载但是当我们执行上面的命令会出现如下提示装逼失败。。。

mac下编译安装php扩展 redis 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 disablecsrutil 这个功能禁用掉,这样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

打完,收功!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22604.html

相关文章

  • linux下编安装redis服务与配置

    摘要:进入解压文件之后利用工具生成利用编译安装包可以使用命令查看位置可以看到位置编译安装完成之后可以看到说明扩展已经安装成功了,接下来改的配置文件。 redis的安装 1.服务器的环境 linux / CentOS release 6.5 (Final) 可以用 cat /etc/redhat-release 命令查看系统版本 2.下载redis(我用的是2.8.13的版本)可自己在官网下...

    ad6623 评论0 收藏0
  • linux下编安装redis服务与配置

    摘要:进入解压文件之后利用工具生成利用编译安装包可以使用命令查看位置可以看到位置编译安装完成之后可以看到说明扩展已经安装成功了,接下来改的配置文件。 redis的安装 1.服务器的环境 linux / CentOS release 6.5 (Final) 可以用 cat /etc/redhat-release 命令查看系统版本 2.下载redis(我用的是2.8.13的版本)可自己在官网下...

    wudengzan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<