温馨提示×

LNMP环境下Redis安装指南

小樊
52
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