zoukankan      html  css  js  c++  java
  • Homestead中PHP扩展无phpize难以安装redis扩展的问题及解决办法

    这真是一个非常深的坑。
    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!

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

  • 相关阅读:
    kubernetes获取Pod内容器信息
    etcd空间配额2G限制优化
    kubernetes集群之GC处理
    kubernetes之statefulset控制器介绍
    基于MySQL Binlog的Elasticsearch数据同步实践
    Nacos
    Python最佳工程实践,建立一个完美的工程项目
    图数据库的内部结构 (NEO4j)
    5个用/不用GraphQL的理由
    Neo4J 查找两节点之间的路径
  • 原文地址:https://www.cnblogs.com/ly570/p/11173774.html
Copyright © 2011-2022 走看看