Mac上redis基本安装配置及问题
2018-05-10 本文已影响4人
developerAbble
MacOS上一直没安装php的Redis扩展,最近笔者安装的时候遇到个问题,所以顺便把安装过程记录一下。顺便加固一下流程。
2 下载Redis文件
可以从gitHub上下载phpredis。gitHub上也有关于redis的使用。笔者自认为无聊时看看这些文档很不错。
~ git clone https://github.com/nicolasff/phpredis
cd phpredis
1 查看是否安装
笔者电脑上没有安装Redis的php扩展。如果想查看个人电脑上是否已经安装了Redis扩展,可以使用:
php -mod
不过,笔者电脑上装的是XAMPP(其实现在有点后悔,如果当初直接安装Apache,PHP和MySQL,对于笔者现在来说可能更方便一点。但是现在形成习惯了也不想再改),查看XAMPP中的php扩展:
✘ /Applications/XAMPP/etc j bin
/Applications/XAMPP/bin
/Applications/XAMPP/bin ./php -m
如果里面有redis,说明已安装好。如果没有,说明还未安装。
3 查看是否有phpize 和 php-config
/Applications/XAMPP/bin ls -a | grep phpize
phpize
phpize-7.0.2
/Applications/XAMPP/bin ls -a | grep php-config
php-config
php-config-7.0.2
/Applications/XAMPP/bin
如果没有则要安装,后面安装Redis扩展会用到。XAMPP中已安装好,所在在此不再说明如何安装。
4 安装
进入下载的redis文件,安装
~ cd phpredis
~/phpredis develop ls
COPYING README.markdown cluster_library.h crc16.h library.c package.xml redis_array.h redis_cluster.h redis_session.h
CREDITS arrays.markdown common.h debian library.h php_redis.h redis_array_impl.c redis_commands.c rpm
INSTALL.markdown cluster.markdown config.m4 debian.control mkdeb-apache2.sh redis.c redis_array_impl.h redis_commands.h serialize.list
ISSUE_TEMPLATE.md cluster_library.c config.w32 liblzf mkdeb.sh redis_array.c redis_cluster.c redis_session.c tests
~/phpredis develop /Applications/XAMPP/bin/phpize
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
~/phpredis develop ./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config
~/phpredis develop whoami
abao
~/phpredis develop sudo make install
安装后会在末行给出一个路径,记住这个路径:
Installing shared extensions: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/
5 php.ini文件中引用
/Applications/XAMPP cd etc && ls
extra httpd.conf.bak mime.types openssl.cnf php.ini-pre1.7.2 ssl.crt webalizer.conf.sample
freetds.conf locales.conf my.cnf original pool.conf ssl.key xampp
httpd.conf magic openldap php.ini proftpd.conf webalizer.conf
/Applications/XAMPP/etc vim php.ini
/Applications/XAMPP/etc
不知道为什么,这里的复制粘贴不行,直接截图了:
image.png在最后一行加上extension便可。其实如果安装过xdebug,如上图所示,两者一对比,便更好理解了。好像直接 等于 redis.so
也行。笔者不放心,就全路径了。
6 最后一步最重要:
重启xampp。
/ j xamppfiles
/Applications/XAMPP
/Applications/XAMPP ./xamppfiles/xampp restart
Restarting XAMPP for Mac OS X 7.0.2-1...
You need to be root to perform this action.
✘ /Applications/XAMPP sudo ./xamppfiles/xampp restart
Password:
Restarting XAMPP for Mac OS X 7.0.2-1...
XAMPP: Stopping Apache...ok.
XAMPP: Stopping MySQL...ok.
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.
/Applications/XAMPP
然后,通过phpinfo查看,或者之前第二步查看是否安装Redis扩展。
image.png
7 连接
创建文件:
image.png
通过php在命令行上直接执行或是通过浏览器访问文件。这样,便可直接访问了。
笔者之前直接这样运行:
/Applications/XAMPP/htdocs/code php connect.php
PHP Fatal error: Uncaught Error: Class 'Redis' not found in /Applications/XAMPP/xamppfiles/htdocs/code/connect.php:3
Stack trace:
#0 {main}
thrown in /Applications/XAMPP/xamppfiles/htdocs/code/connect.php on line 3
Fatal error: Uncaught Error: Class 'Redis' not found in /Applications/XAMPP/xamppfiles/htdocs/code/connect.php:3
Stack trace:
#0 {main}
thrown in /Applications/XAMPP/xamppfiles/htdocs/code/connect.php on line 3
✘ /Applications/XAMPP/htdocs/code /Applications/XAMPP/bin/php connect.php
报错,百思不得其解。最后意识到,在CentOS上操作习惯了,CentOS上默认配置好了,或者别人配置好的。但是这里安装的XAMPP,默认没有配置。用下面的命令就不报错了:
/Applications/XAMPP/htdocs/code /Applications/XAMPP/bin/php connect.php
val1/Applications/XAMPP/xamppfiles/htdocs/code/connect.php:15:
string(1) "6"
/Applications/XAMPP/htdocs/code