• centos8手动编译安装swoole过程


    环境:
    centos8
    宝塔7.9.3
    php 7.4
    swoole 4.8.11
    代码框架:tp6+swoole
    aliyuncs/oss-sdk-php 2.5.0
    qcloud/cos-sdk-v5 2.5.9
    问题:
    使用了swoole http服务后导致阿里云与腾讯云的sdk发生错误,分别是:
    阿里云提示:RequestCoreException: cURL error: SSL verify failed (1014)
    腾讯云提示:Object of class Swoole\Curl\Handler could not be converted to int

    百度原因是宝塔默认安装的swoole没有设置:curl-native:enabled需要手动安装swoole并配置上这个设置,操作大至流程如下:

    • 安装前的准备:

      1. 确认php的版本是否php 7.4
        指令:php -v
        如果版本不对,可以到宝塔系统进行操作:
        网站->PHP命令行版本->选php-74,提交
        (注:默认可能已经是php-74,但要提交才生效)
      2. 删除宝塔默认安装的swoole。
        指令:php -m确认是否已删除swoole扩展
      3. 确认是否安装了pecl
        指令:pecl
        如果显示pecl的帮助文字即是已安装,如果没安装可执行以下指令进行安装
        pecl安装指令:
        wget http://pear.php.net/go-pear.phar
        php go-pear.phar (过程中的所有提示都按回车即可)
        yum install php-pear //确认pecl是否安装装完毕
        最后再次尝试运行pecl指令
    • 安装swoole:

      1. 安装指令:
        swoole 4.8安装指令
        pecl install -D ‘enable-sockets=“yes” enable-openssl=“yes” enable-http2=“yes” enable-mysqlnd=“yes” enable-swoole-json=“no” enable-swoole-curl=“yes” enable-cares=“yes”’ https://pecl.php.net/get/swoole-4.8.11.tgz
        =====================================================================
        swoole 5.0安装指令:
        pecl install --configureoptions ‘enable-sockets=“yes” enable-openssl=“yes” enable-http2=“yes” enable-mysqlnd=“yes” enable-swoole-json=“yes” enable-swoole-curl=“no” enable-cares=“yes”’ https://pecl.php.net/get/swoole-5.0.0.tgz

      2. 指令运行完毕后记录swoole的安装路径
        安装路径一般会在安装结束提示的"Build process completed successfully"下面第一句,例如:Installing ‘/xxx/xxx/xxx/xxx/swoole.so’

      3. php.ini的设置
        1. 在宝塔内的php配置文件最后添加
        [swoole]
        extension = /xxx/xxx/xxx/xxx/swoole.so(此处为刚刚记下的swoole路径)
        2. 重新加载配置(在宝塔内操作)后运行php -m指令查看是否有swoole扩展,如果没有则需要在php-cli.ini里追加同样的配置才行。
        查看php-cli.ini的指令为:php --ini
        设置完比后重新加载配置或重启php后(在宝塔内操作)即可以在php -m内看到swoole
        4.作完以上操作后即可在phpinfo()内查看到swoole里已经包含的curl-native:enabled 阿里云和腾讯云的sdk包即可顺畅运行。

    • 附加:
      在运行php think swoole时提示“Uncaught Error: Class ‘Swoole\Table’”即是php -m里没有swoole扩展导致的

  • 相关阅读:
    MySQL 保姆级教程(六):用通配符进行过滤
    Sass中@each、@for、@if的搭配使用
    【Java】Java开发环境搭建
    async-validator 源码学习笔记(六):validate 方法
    linux中利用VScode编写C++程序
    【复盘】主从延迟以及 Waiting for tablemetadata lock 线上问题
    NFTScan 正式上线 TON NFTScan 浏览器!
    c++ ,python监控 进程 状态 fork
    JVM 参数
    gRPC之gateway集成swagger
  • 原文地址:https://blog.csdn.net/oyiboy/article/details/126833450