centos7 离线安装redis 及PHP扩展redis

来源:互联网 发布:mac修改hosts文件翻墙 编辑:程序博客网 时间:2024/05/05 08:02

linux 安装redis

redis相关的包 

phpredis-2.2.4.tar.gz
phpredis-develop.zip
redis-4.0.6.tar.gz
链接: https://pan.baidu.com/s/1eSOwqhO 密码: af4c

1.解压 编译安装

tar -zxvf redis-4.0.6.tar.gz
cd redis-4.0.6/src
make
make install

2. 移动文件

ls redis-4.0.6/src 时 可以看到一些绿色文件
mkdir  -p /usr/local/redis/etc   ###etc拥有存放配置文件
mkdir  -p /usr/local/redis/bin   ###bin用于存放命令

将redis-4.0.6文件夹下的redis.conf复制到/usr/local/redis/etc/
cp ../redis.conf  /usr/local/redis/etc/

将redis-4.0.6/src 文件夹下 的绿色的文件拷贝到 /usr/local/redis/bin
cp 绿色文件名  /usr/local/redis/bin/
 cd /usr/local/redis/bin
ls

3. 启动redis服务。启动redis服务需要用到命令redis-server

 ./redis-server
可能会出现 Warning: no config file specified, 
终止后
 ./redis-server /usr/local/redis/etc/redis.conf
 现在redis是在前台运行

redis在后台运行
vi /usr/local/redis/etc/redis.conf
搜索:/daemonize
把daemonize配置项改为yes 
保存退出

./redis-server /usr/local/redis/etc/redis.conf
ps -ef | grep redis
pstree -p  | grep redis   ##树状显示
netstat -ntlp | grep 6379   ###端口

[linuxidc@localhost bin]$ /usr/local/redis/bin/redis-cli
127.0.0.1:6379>//提示
则表明客户端登录成功

4.加入systemctl  配置redis

vi /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target

[Service]
#Type=forking
PIDFile=/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf  --daemonize no
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown
PrivateTmp=true

[Install]
WantedBy=multi-user.target

保存退出
systemctl daemon-reload
systemctl start redis
systemctl enable redis
systemctl is-enabled redis

若出现错误
systemctl enable redis
Failed to execute operation: Bad message

请检查/usr/lib/systemd/system/redis.service文件


5.如果已安装PHP 安装php-redis扩展

需要 phpredis-develop.zip
下载地址:https://github.com/phpredis/phpredis/archive/develop.zip
unzip  phpredis-develop.zip
cd phpredis-develop
/usr/local/php7/bin/phpize 
./configure --with-php-config=/usr/local/php7/bin/php-config
make
(看到结果:Don't forget to run 'make test'.即为成功)
make install
(看到结果为:Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
)
注:Installing shared extensions ----表示生成了动态链接库文件redis.so.
可以查看有没有redis.so
ls   /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/

文件 redis.so 路径
phpredis-develop/modules/redis.so
phpredis-develop/.libs/redis.so
/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/redis.so
三个文件是同一个文件


配置php.ini

在extension后添加
extension=redis.so
 
重启php

测试redis 

cd 
vi test.php
<?php
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
echo 'Connection to server successfully';
echo 'Server is running:' . $redis->ping();
:wq


执行test.php
php test.php


若出现错误Fatal error: Uncaught Error: Class 'redis' not found 
可能是因为运行php命令和apache或ngnix可能使用了不同的php.ini,即使在php.ini里看到加载了redis,还需要在php命令行使用php.ini里也增加Redis模块。
解决:
1.查看phpinfo 中php.ini的位置  /usr/local/php7/etc/php.ini
2.搜索php.ini文件的位置 /usr/local/php7/lib/
3. cp /usr/local/php7/etc/php.ini  /usr/local/php7/lib/php.ini
4.重启php-fpm  nginx  redis
5.执行test.php  
[root@192 /]# php test.php
Connection to server successfullyServer is running:+PONG[root@192 /]#


php -m | grep redis


原创粉丝点击