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
网友评论