LNMP(Linux+Nginx+MySQL+PHP) yum方式安装Redis

时间:2023-03-08 17:20:05
LNMP(Linux+Nginx+MySQL+PHP) yum方式安装Redis

一、环境信息

  • CentOS Linux release 8.1.1911 (Core)
  • Redis server v=5.0.3

二、yum方式安装

1、添加EPEL仓库

  sudo yum install epel-release

2、更新

  sudo dnf update

3、使用 CentOS 8 默认的仓库进行安装

  sudo dnf install redis

4、启动

  systemctl start redis

5、设置开机自启

  systemctl enable redis

6、设置防火墙等操作。。。

7、本机测试

  redis-cli

8、成功连接之后,输入

  ping

如果输出

  PONG

则说明Redis可以正常使用

三、PHP安装Redis扩展

1、确保PHP安装了php-devel扩展。安装php-devel扩展命令

   yum install php-devel

2、下载PHP的Redis扩展(wget下载文件时,默认下载到当前目录,所以先确定自己需要安装在哪个文件下)

   wget https://github.com/phpredis/phpredis/archive/develop.zip

3、下载完成后,解压文件

   unzip develop.zip

4、解压后会出现一个 phpredis-develop 的文件夹,进入这个文件夹,执行

   phpize

5、执行成功之后,在当前文件夹下就会出现 configure,再执行配置(--with-php-config=/usr/bin/php-config 指定安装 PHP 的时候的配置)

  ./configure -with-php-config=/usr/bin/php-config

6、使用root用户进行安装

   sudo make install

如果出现 Installing shared extensions: /usr/lib64/php/modules/ ,说明安装成功。

7、使用命令进入php配置文件

   sudo vim /etc/php.ini

8、在配置文件末尾添加一行代码(extension=redis.so),保存退出。

9、若make test 出错,或者重启php-fpm失败, 出现

  PHP Warning:  PHP Startup: Unable to load dynamic library 'redis.so' (tried: /usr/lib64/php/modules/redis.so (/usr/lib64/php/modules/redis.so: undefined symbol:
php_json_decode_ex), /usr/lib64/php/modules/redis.so.so (/usr/lib64/php/modules/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

原因是安装的Redis扩展和json扩展加载顺序冲突导致报错。

将php.ini里加入的extension=redis.so删除,

进入/etc/php.d文件夹,创建redis.ini,

在redis.ini中加入:

   ;redis
extension=redis.so

10、重启php-fpm

   sudo systemctl restart php-fpm

11、如果启动成功,用 php -m 命令就可以查看到Redis的扩展。

本文参考的主要文章:

centos下安装php-redis扩展

linux php-redis扩展安装错误 php_json_decode_ex