温馨提示×

LNMP环境下Redis安装指南

小樊
49
2025-10-13 17:09:40
栏目: 云计算

LNMP环境下Redis安装与集成指南

一、准备工作

  1. 前提条件:确保已搭建稳定的LNMP(Linux+Nginx+MySQL+PHP)环境,且PHP能正常解析网页(可通过访问PHPinfo页面验证)。
  2. 系统依赖:安装编译Redis及PHP扩展所需的工具包(以CentOS为例):
    yum install -y gcc gcc-c++ make automake pcre pcre-devel zlib zlib-devel openssl openssl-devel 
    Ubuntu/Debian系统使用apt替换yum即可。

二、安装Redis服务器

1. 下载与解压

选择Redis稳定版本(如5.0.5),下载并解压到指定目录(如/www/lnmp):

cd /www/lnmp wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar -zxvf redis-5.0.5.tar.gz cd redis-5.0.5 

2. 编译与安装

执行编译安装命令,将Redis安装到/usr/local/redis目录:

make mkdir -p /usr/local/redis make install PREFIX=/usr/local/redis 

3. 配置Redis后台运行

修改Redis配置文件(redis.conf),将daemonize no改为yes(允许Redis以后台守护进程运行):

vim redis.conf # 找到"daemonize no",修改为: daemonize yes 

4. 启动Redis服务

使用配置文件启动Redis,并验证状态:

/usr/local/redis/src/redis-server /usr/local/redis/redis.conf ps -ef | grep redis # 确认进程存在 

5. 设置开机自启动

将Redis启动脚本复制到系统init.d目录,添加开机启动项:

cp utils/redis_init_script /etc/init.d/redis chmod +x /etc/init.d/redis chkconfig --add redis # CentOS 7以下 systemctl enable redis # CentOS 7及以上 

测试重启机器后Redis是否自动启动。

三、安装PHP Redis扩展

1. 下载与解压

通过PECL下载最新稳定版本的PHP Redis扩展(如3.2.8),解压到/www/lnmp目录:

cd /www/lnmp pecl download redis tar -zxvf redis-*.tgz cd redis-* 

2. 编译与安装

使用PHPize生成编译配置,指定PHP路径(如/www/source/php),完成编译安装:

/www/source/php/bin/phpize ./configure --with-php-config=/www/source/php/bin/php-config make make install 

安装完成后,redis.so文件会生成在PHP扩展目录(如/www/source/php/lib/php/extensions/no-debug-zts-20151012/)。

3. 配置PHP加载扩展

编辑PHP配置文件(如/www/source/php/lib/php.ini),在extension=后面添加redis.so

vim /www/source/php/lib/php.ini # 添加以下行: extension=redis.so 

4. 重启服务并验证

重启PHP-FPM和Nginx,使配置生效:

service php-fpm restart service nginx restart 

创建info.php文件(<?php phpinfo(); ?>),访问该页面搜索“redis”,若出现Redis扩展信息则说明安装成功。

四、测试Redis功能

创建PHP测试文件(如/www/web/index.php),实现缓存逻辑:

<?php $redis = new Redis(); try { $redis->connect('127.0.0.1', 6379); // 连接Redis $key = 'test_key'; $value = $redis->get($key); if ($value === false) { $value = 'Hello, Redis!'; $redis->set($key, $value, 20); // 缓存20秒 echo "Data from MySQL (cached: $value)"; } else { echo "Data from Redis cache: $value"; } } catch (Exception $e) { echo "Redis connection failed: " . $e->getMessage(); } ?> 

访问该页面,首次输出“Data from MySQL”,20秒内再次访问输出“Data from Redis cache”,说明Redis缓存功能正常。

五、安全优化建议

  1. 设置Redis密码:修改redis.conf,添加requirepass yourpassword(替换为强密码),重启Redis后生效。连接时需调用auth方法:
    $redis->auth('yourpassword'); 
  2. 限制访问IP:在redis.conf中设置bind 127.0.0.1,仅允许本地访问,避免暴露端口。
  3. 定期备份数据:通过save命令或BGSAVE指令定期保存数据到磁盘。

0