

新闻资讯
技术学院PHP安装Redis扩展需先确认PHP版本和SAPI类型,Linux用pecl安装需php-dev/devel支持并匹配php.ini路径,Windows须下载对应TS/NTS/x64/x86的DLL;装后需验证扩展加载及Redis服务连通性。
直接 pecl install redis 很可能失败,因为扩展版本必须匹配 PHP 大版本(如 8.1 / 8.2 / 8.3)和编译类型(cli 和 fpm 通常需分别处理)。用以下命令查清底细:
php -v php -i | grep "PHP Extension" php-config --extension-dir php --ini
特别注意 Loaded Configuration File 路径——这是你要改的 php.ini,不是系统默认路径下的那个。
确保已安装 php-dev(Ubuntu/Debian)或 php-devel(CentOS/RHEL),否则编译会报 phpize not found 或 fatal error: php.h: No such file:
sudo apt install php-dev(
Ubuntu 22.04+ 默认对应系统 PHP 版本)sudo pecl install redis(自动编译并输出 redis.so 路径)php.ini 末尾添加:extension=redis.so
sudo systemctl restart php8.2-fpm(Ubuntu)或 sudo systemctl restart httpd(CentOS)如果提示 unable to mktemp,是临时目录权限问题,加 sudo pecl install -d temp_dir=/tmp redis。
PHP for Windows 官方包不带 redis.dll,不能靠 pecl;必须手动下载匹配的 DLL:
php_redis.dll,放进 ext/ 目录(如 C:\php\ext\)php.ini 中取消注释或新增:extension=php_redis.dll
常见错误:PHP Startup: Unable to load dynamic library 'php_redis.dll',90% 是 DLL 版本不匹配,尤其是 PHP 8.2+ 必须用 redis-5.3.7+,旧版 DLL 会直接拒绝加载。
扩展装完不等于能用。先运行 php -m | grep redis 看是否列出;再写个最小测试脚本确认连接逻辑:
connect('127.0.0.1', 6379, 2); // 第三个参数是超时秒数,别设 0
$r->set('test_key', 'ok_' . time());
echo $r->get('test_key') . "\n";
} catch (RedisException $e) {
echo "Redis error: " . $e->getMessage() . "\n";
}
如果报 Connection refused,说明 Redis 服务根本没起来,不是 PHP 的问题;phpinfo() 页面里出现 redis 模块标题栏,才代表扩展加载成功。实际项目中,connect() 建议始终加超时和异常捕获,否则阻塞请求。