Homestead 使用 pecl 安装 swoole 扩展

``
环境说明及版本说明:

Homestead v13.2.1
swoole v4.8.11
``

1. 安装 swoole

由于homestead里面有很多版本的PHP,

  1. 安装 swoole
    如果执行 pecl install swoole 安装 ,会安装最新版本,就是php8.*的版本,
    vagrant@homestead:~$ sudo pecl install swoole
    这个时候就要指定PHP版本和swoole版本: 
    sudo pecl -d php_suffix=7.4 install swoole-4.8.8
    或者
    sudo pecl -d php_suffix=7.4 install https://pecl.php.net/get/swoole-4.8.11.tgz
  • 遇到以下错误

    WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
    Could not download from "https://pecl.php.net/get/mongodb-1.5.5.tgz", cannot download "pecl/mongodb" (Connection to `ssl://pecl.php.net:443' failed: )
    Error: cannot download "pecl/mongodb"
    Download failed
    install failed
    • 解决方法:
    vagrant@homestead:~$ sudo pecl channel-update pecl.php.net

    安装的时候会有 yes/no 之类的选项,直接 enter 就可以了
    出现如下文字说明已经安装成功:

    Build process completed successfully
    Installing '/usr/lib/php/20180731/swoole.so'
    Installing '/usr/include/php/20180731/ext/swoole/config.h'
    install ok: channel://pecl.php.net/swoole-4.4.17
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=swoole.so" to php.ini

如果安装的时候一直回车,安装到最后报错了
Homestead 使用 pecl 安装 swoole 扩展
我这里提示是,c-ares 有问题,导致安装失败
安装一下 c-cres 就好了

sudo apt update
sudo apt install libc-ares-dev
这个安装好后,在重新安装上面的,
下面是对swoole的一些配置
  • 创建配置文件

    vagrant@homestead:~$ sudo touch /etc/php/7.3/mods-available/swoole.ini
    • 写入以下内容
    extension=swoole.so
    • 添加软连接
    vagrant@homestead:/etc/php/7.3/cli/conf.d$ sudo ln -s /etc/php/7.3/mods-available/swoole.ini ./20-swoole.ini
    • 重启 php-fpm
    sudo service php7.3-fpm restart
    • 查看扩展
    vagrant@homestead:/etc/php/7.3/cli/conf.d$ php --ri swoole

    如果出现以下内容说明已经安装成功

    swoole
    Swoole => enabled
    Author => Swoole Team <team@swoole.com>
    Version => 4.4.17
    Built => Apr 17 2020 20:14:41
    coroutine => enabled
    epoll => enabled
    eventfd => enabled
    signalfd => enabled
    cpu_affinity => enabled
    spinlock => enabled
    rwlock => enabled
    pcre => enabled
    zlib => 1.2.11
    mutex_timedlock => enabled
    pthread_barrier => enabled
    futex => enabled
    async_redis => enabled
    Directive => Local Value => Master Value
    swoole.enable_coroutine => On => On
    swoole.enable_library => On => On
    swoole.enable_preemptive_scheduler => Off => Off
    swoole.display_errors => On => On
    swoole.use_shortname => On => On
    swoole.unixsock_buffer_size => 8388608 => 8388608

本文有一部分是复制了另一篇文章:
博客:Homestead 使用 pecl 安装 swoole 扩展
这篇文章只是对一路回车报错的一点点补充

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

为什么需要重启php-fpm?

3周前 评论
jxdr (楼主) 3周前

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