确保已搭建好LNMP(Linux+Nginx+MySQL+PHP)环境,且PHP能正常运行。本教程以常见的CentOS/RHEL系统为例,Ubuntu/Debian系统命令略有差异(如yum替换为apt)。
Redis运行需要编译工具及加密库,执行以下命令安装:
# CentOS/RHEL系统
sudo yum install -y gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel
# Ubuntu/Debian系统
sudo apt update
sudo apt install -y build-essential automake libpcre3-dev zlib1g-dev libssl-dev
选择稳定版本的Redis(如5.0.5),下载后编译安装:
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
make
sudo make install
/etc目录:sudo mkdir -p /etc/redis
sudo cp redis.conf /etc/redis/
/etc/redis/redis.conf):
daemonize yes);bind 127.0.0.1,仅本地访问;若需远程访问可改为0.0.0.0,但需注意安全);requirepass yourpassword,建议开启);save参数)。# 启动Redis
sudo src/redis-server /etc/redis/redis.conf
# 设置开机自启
sudo echo "src/redis-server /etc/redis/redis.conf" >> /etc/rc.local
sudo chmod +x /etc/rc.local
# 连接Redis
sudo src/redis-cli -a yourpassword
# 测试存取数据
127.0.0.1:6379> set test "Hello Redis"
OK
127.0.0.1:6379> get test
"Hello Redis"
127.0.0.1:6379> exit
PHP需通过扩展才能与Redis交互,推荐使用phpredis(官方扩展)。
根据PHP版本选择对应的phpredis版本(如7.4对应redis-5.3.7),执行以下命令:
# 下载phpredis(以5.3.7为例)
wget https://pecl.php.net/get/redis-5.3.7.tgz
tar -zxvf redis-5.3.7.tgz
cd redis-5.3.7
# 编译安装
/www/source/php/bin/phpize # 替换为你的PHP源码路径
./configure --with-php-config=/www/source/php/bin/php-config # 替换为你的php-config路径
make
sudo make install
编辑PHP配置文件(/etc/php.ini或/etc/php/7.4/fpm/php.ini,根据PHP运行模式调整):
extension=redis.so
# 若使用PHP-FPM
sudo systemctl restart php-fpm
# 若使用Apache
sudo systemctl restart httpd
创建info.php文件(/var/www/html/info.php):
<?php phpinfo(); ?>
通过浏览器访问http://your_server_ip/info.php,搜索“redis”,若出现扩展信息则说明安装成功。
安装完成后,可通过以下代码测试Redis操作:
<?php
// 连接Redis(本地+密码)
$redis = new Redis();
try {
$redis->connect('127.0.0.1', 6379);
$redis->auth('yourpassword'); // 若未设置密码可省略
} catch (Exception $e) {
die("Redis连接失败: " . $e->getMessage());
}
// 存取数据
$redis->set('name', 'John');
$name = $redis->get('name');
echo "Name: " . $name; // 输出: Name: John
// 删除数据
$redis->del('name');
// 关闭连接
$redis->close();
?>
Redis无法连接:
ps aux | grep redis);sudo firewall-cmd --add-port=6379/tcp --permanent,sudo firewall-cmd --reload);bind和protected-mode(若远程访问需设为no,但不建议生产环境使用)。PHP无法加载扩展:
php.ini中extension=redis.so路径是否正确;redis.so是否存在于PHP扩展目录(php -i | grep extension_dir);/var/log/php-fpm/error.log)定位问题。PHP-FPM与Nginx通信问题:
php-fpm.sock路径与Nginx配置一致(fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;);php-fpm.conf中的listen.allowed_clients是否包含Nginx服务器IP。通过以上步骤,即可在LNMP环境下完成Redis的安装与使用,利用Redis的高速缓存特性提升Web应用性能。