info的博客

我是一只小小小小小小小小小小菜鸟

MAC 下 安装 MAMP的PHP redis扩展

MAC 下 安装 MAMP的PHP redis&memcache扩展

首先说明,所谓添加扩展,分两步:

  1. 将扩展文件放在扩展的文件夹下
    (本次是将redis.so 放在applications/MAMP/bin/php/php5.5.18/lib/php/extensions/no-debug-non-zts-20121212下,最后一个文件夹的名字每个人可能不一样)

  2. 修改php.ini
    即在php.ini 中添加一行:extensions = redis.so

OK.开始安装

  1. 首先我们要去下PHP的源码文件,本人使用的PHP5.5.18 所以下载的5.5.30的源码,也就是说只要下载X.X对应的版本号就可以了,最后的.18和官网的.30虽然不同,但是不影响使用,下载完成解压放到applications/MAMP/bin/php/php5.5.18/include/下(include是我新建的)

  2. 在终端中先进入上一步的php源码路径
    cd /Applications/MAMP/php/php5.5.18/include/php
    ./configure

    (最后的php文件夹名字,我嫌解压缩出来的太长给改了)。
    这一步是为了让下一步编译redis.so时,有对应的php头部文件。

  3. 下载redis
git clone https://github.com/nicolasff/phpredis.git 

不出意外下载之后是在根目录下的,既然要编译redis就要进入redis的文件夹

cd phpredis

进入之后开始编译

/Applications/MAMP/php/php5.5.18/bin/phpize
./configure --with-php-config=/Applications/MAMP/php/php5.5.18/bin/php-config
make

编译成功,这是会在phpredis/modules下生成了redis.so.
现在回到开始说的,把这个redis.so 放到applications/MAMP/bin/php/php5.5.18/lib/php/extensions/no-debug-non-zts-20121212下然后修改php.ini,重启MAMP。
就可以在phpinfo中看到redis了。


下面说说memcache的安装吧

和上面安装redis的步骤一样,只不过在编译redis的时候
使用下面的指令

./configure --enable-memcache --with-php-config=/applications/mamp/bin/php/php5.5.18/bin/php-config --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8

下面说一些安装过程中可能遇到的错误吧。

第一种:
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.
解决办法:
缺啥就装啥,我这里使用brew安装的

brew install autoconf

第二种:
redis.so 放进去 php.ini也改了 重启MAMP之后phpinfo没出现redis
解决办法:
这里写图片描述
修改这里的php.ini就可以了。

第三种:
configure: error: Please specify the install prefix of iconv with –with-iconv=

解决办法:
brew安装libiconv
在第二部给configure指定路径
./configure –with-iconv=/usr/local/Cellar/libiconv/1.14/

第四种:
这个算不上错误。
测试:

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

正常会输出:
string(11) “hello world”

如果输出:
Fatal error: Uncaught exception ‘RedisException’ with message ‘Redis server went away’ in ‘测试文件地址’: Redis->set(‘test’, ‘hello world’) #1 {main} thrown in ‘测试文件地址’
原因有可能是没有开启 redis服务。上面只是下载redis用于编译redis.so,并没有安装,这里我们用brew安装。
解决办法:
在终端输入:

 brew install redis

安装redis服务

redis-server

开启redis服务 到这里就可以用了。

再给一个关闭服务的指令

redis-cli -p 6379 shutdown

6379是测试端口,即测试代码中的6379.

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013332865/article/details/49638923
个人分类: PHP
想对作者说点什么? 我来说一句

mamp pro redis.so扩展

2017年07月12日 439KB 下载

没有更多推荐了,返回首页

不良信息举报

MAC 下 安装 MAMP的PHP redis扩展

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭