记一次 Redis not fond 处理方法

运行环境

1). 当前使用的 Laravel 版本

Laravel Framework 8.83.1

2). 当前使用的 php/php-fpm 版本

root@iZbp1ib5cqwf8akmach7vcZ:/www/wwwroot/api.niuwen.com# php -v
PHP 8.0.11 (cli) (built: Sep 25 2021 08:26:51) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.11, Copyright (c) Zend Technologies

3). 当前系统

Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-100-generic x86_64)

2. 问题描述

项目中使用 phpRedis 作为 驱动, 正常调用时,存储数据、用作缓存服务等场景时没有问题; 但是, 使用Laravel队列、任务调度等场景时提示 ‘Redis’ not fond

2. 猜测问题原因

  1. 出现 ‘Redis’ not fond 错误,应该是因为没有找到Redis扩展导致的,或者已安装,但是并没有加载成功
  2. 正常调用Redis时,走的时 php-cgi 运行模式,使用 php artisan 时走的是 php-cli运行模式

3. 解决思路

  1. 通过phpinfo()查看是否已安装 redis 扩展(确定已安装)
  2. 通过命令 PHP -m 查看是否加载了 redis 模块(发现未加载)
  3. 通过命令php -ini 查看配置文件中的Loaded Configuration File(加载了php-cli.ini)
    Server API => Command Line Interface
    Virtual Directory Support => disabled
    Configuration File (php.ini) Path => /www/server/php/80/etc
    Loaded Configuration File => /www/server/php/80/etc/php-cli.ini
    Scan this dir for additional .ini files => (none)
    Additional .ini files parsed => (none)
  4. 通过phpinfo()查看配置文件 对比Loaded Configuration File(加载了php.ini)

4.解决

  1. 打开php-cli.ini文件添加Redis扩展

    [redis]
    extension = /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.so
  2. 运行 php -m 命令(发现已加载Redis扩展)

  3. 问题解决

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!