Homestead 安装 PHP Redis 扩展

虽然Laravel可以通过安装predis/predis:~1.1对Redis进行操作,但是还是想脱离框架,用PHP操作Reids,通过安装PHP Redis既可实现,以下是具体的安装步骤:

下载最新安装包

vagrant@homestead:/usr/local/src$ sudo git clone https://github.com/phpredis/phpredis.git
Cloning into 'phpredis'...
remote: Enumerating objects: 41, done.
remote: Counting objects: 100% (41/41), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 10462 (delta 19), reused 17 (delta 7), pack-reused 10421
Receiving objects: 100% (10462/10462), 6.38 MiB | 31.00 KiB/s, done.
Resolving deltas: 100% (7214/7214), done.

使用phpize命令完成php环境的检测

vagrant@homestead:/usr/local/src$ cd phpredis/

vagrant@homestead:/usr/local/src/phpredis$ sudo /usr/bin/phpize7.3 #不同php版本的情况下phpize版本不同
Configuring for:
PHP Api Version:         20180731
Zend Module Api No:      20180731
Zend Extension Api No:   320180731

vagrant@homestead:/usr/local/src/phpredis$ sudo ./configure --with-php-config=/usr/bin/php-config7.3

编译安装

vagrant@homestead:/usr/local/src/phpredis$ sudo make && make install

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/lib/php/20180731/
Makefile:87: recipe for target 'install-modules' failed
make: *** [install-modules] Error 1

查看扩展

vagrant@homestead:/usr/local/src/phpredis$ php -i|grep extension_dir

extension_dir => /usr/lib/php/20180731 => /usr/lib/php/20180731

把redis.so扩展模块移入PHP扩展目录中

vagrant@homestead:/usr/local/src/phpredis$ sudo mv ./modules/redis.so /usr/lib/php/20180731/

添加PHP配置文件的ini文件

创建文件
vagrant@homestead:/usr/local/src/phpredis$ sudo touch /etc/php/7.3/fpm/conf.d/20-redis.ini
使用vi编辑器写入如下内容:
extension=redis.so

重启php-fpm

vagrant@homestead:/usr/local/src/phpredis$ sudo service php7.3-fpm restart

查看是否安装成功

<?php
phpinfo();
?>
如果看到Redis的扩展则安装成功

Homestead 安装 PHP Redis 扩展

终端无法连接homestead的Reids

1)修改redis配置文件(默认路径/etc/redis/redis.conf)
bind 127.0.0.1 修改为 bind 0.0.0.0
2)修改完配置后重启redis
执行命令sudo service redis restart后,使用redis-cli访问redis

Homestead 安装 PHP Redis 扩展

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12

为什么我的php文件夹下没有默认生成20180721这个文件夹

4年前 评论
maskers (作者) 4年前
Aniu (楼主) 4年前
ruanwenwu 1年前
ruanwenwu 1年前

make && make install后不需要再手动把.so文件移入到php拓展文件夹了,会自动复制一份过去的

4年前 评论

您好,我 homestead 初始化后就是有 redis 的,那么和 phpredis 有什么区别的呢?两者不一样吗?

4年前 评论
JerryBool 3年前

对php-cli模式下模块配置同理,只不过路径需要变更下或者直接将20-redis.ini文件复制到/etc/php/7.1/cli/conf.d/

homestead中的php可能会没有phpize工具,需要自行安装:www.cnblogs.com/ly570/p/11173774.h...

3年前 评论

@程序员二毛 再次回来看此贴,有了新的教训:1 执行 sudo /usr/bin/phpize7.3 时,记得去指定php版本,不能因为用的是默认版本就不指定;2 执行 sudo ./configure --with-php-config=/usr/bin/php-config7.3 时同理。3 记得查看执行1之后的文件信息是否跟你执行 php -i|grep extension_dir 的一致!!!

3年前 评论

@程序员二毛 确实的,因为homestead存在多个php版本,设置的时候需要注意。

3年前 评论

我添加了 redis.so 重启 phpinfo 还是没有呢

3年前 评论

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