Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 503|回复: 0

Homestead中PHP扩展无phpize难以安装redis扩展的问题及解决办法

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-9-4 17:06:10 | 显示全部楼层 |阅读模式

    这真是一个非常深的坑。
    homestead中自带很多版本的php。然而扩展中缺没有phpize,这个东西是php添加扩展需要的东西
    本人在laravel中需要用到Redis扩展。这个和laravel的predis是存在区别的。predis相当于一个类包。
    而我需要的是PHP的extension。。然后就开始了我的采坑之旅!

    废话不说了,上解决方法。
    首先:
    第一步
    我是homestead的Ubuntu系统。
    首先重新装下php的环境包,这是为了让phpize出来!因为不知道为什么现在homestead自带的没有

    sudo apt install php7.2-dev
    1
    如果你用的不是php7.2,而是7.1那你就改成sudo apt install php7.1-dev
    然后可能会下载不到资源,因为资源本身在国外。你需要修改下载源为国内的镜像源。
    点我看怎么修改
    安装的时候遇到提示都选择替换。
    安装完毕检查/usr/bin会发现这时phpize和它对应的版本。
    第二步
    安装redis为php添加上redis扩展。
    如果权限不够产生问题请自己加上代码sudo!
    如:sudo git clone https://github.com/phpredis/phpredis.git

    $ git clone https://github.com/phpredis/phpredis.git
    $ cd phpredis
    $ /usr/bin/phpize7.1 (不同php版本的情况下phpize版本不同)
    $ ./configure --with-php-config=/usr/bin/php-config7.1 (这里边也需要根据情况指定php-config的版本,且和phpize的版本保持一致。)
    $ make && make install
    1
    2
    3
    4
    5
    安装完毕后为php添加redis扩展。本人这里是php7.2

    sudo find / -name redis.so
    # 找到编译的 redis.so 文件
    php7.2 -i|grep extension_dir
    # 找到 php7.2 对应的扩展目录( /usr/lib/php/20170718)
    sudo mv /usr/local/src/phpredis/modules/redis.so /usr/lib/php/20170718/redis.so
    sudo vim /etc/php/7.2/fpm/conf.d/20-redis.ini
    # 20-redis.ini 是新加的,以前是没有的
    # 再 20-redis.ini 中添加 extension=redis.so ,保存退出。
    # 通常,添加扩展是在 php.ini 中,这里是在 fpm/conf.d 添加。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    最后
    重启服务

    sudo service php7.2-fpm restart
    1
    看看phpinfo()是不是有redis了
    或者
    php -m(有时候phpinfo有,这里没有)

    主要是phpinfo显示有了redis的扩展就行

    最最后
    web代码测试一下

    $redis = new \Redis(http://www.my516.com);
    //连接
    $redis->connect('127.0.0.1', 6379);
    //检测是否连接成功
    echo "Server is running: " . $redis->ping();die;
    1
    2
    3
    4
    5
    如果显示
    Server is running: 1
    完结撒花~
    注:new Redis()的时候要区分好是扩展的Redis还是laravel的predis!

    有疑问或者不足请留言,欢迎找茬~
    ---------------------

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-5 03:15 , Processed in 0.149623 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表