记一次 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. 猜测问题原因
- 出现 ‘Redis’ not fond 错误,应该是因为没有找到
Redis
扩展导致的,或者已安装,但是并没有加载成功 - 正常调用
Redis
时,走的时php-cgi
运行模式,使用php artisan
时走的是php-cli
运行模式
3. 解决思路
- 通过
phpinfo()
查看是否已安装redis
扩展(确定已安装) - 通过命令
PHP -m
查看是否加载了redis
模块(发现未加载) - 通过命令
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)
- 通过phpinfo()查看配置文件 对比
Loaded Configuration File
(加载了php.ini)
4.解决
打开
php-cli.ini
文件添加Redis
扩展[redis] extension = /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.so
运行
php -m
命令(发现已加载Redis
扩展)问题解决