安装 Swoole

下载

首先进入 SwooleGithub 下载地址: https://github.com/swoole/swoole-src/releases

如果没有特殊需求,请选择最新稳定版本开始下载(我这里是稳定版v4.4.23):

  1. ## 下载
  2. tioncico@tioncico-PC:/tmp$ wget https://github.com/swoole/swoole-src/archive/v4.4.23.tar.gz
  3. # 如果使用 github 下载慢,请到 pecl 进行下载
  4. # tioncico@tioncico-PC:/tmp$ wget https://pecl.php.net/get/swoole-4.4.23.tgz
  5. ## 解压到当前目录
  6. tioncico@tioncico-PC:/tmp$ tar -zvxf v4.4.23.tar.gz
  7. ## cd 到解压之后的目录
  8. tioncico@tioncico-PC:/tmp$ cd swoole-src-4.4.23/
  9. ## 使用 phpize 创建 php 编译检测脚本 ./configure
  10. ##【注意:需要选择 php 对应版本的 phpize,这里使用的是绝对路径,否则编译安装无法生效】
  11. tioncico@tioncico-PC:/tmp/swoole-src-4.4.23$ /usr/local/php-7.2.2/bin/phpize
  12. ## 创建编译文件,第一个 --with,后面是 php-config 的所在路径(这个路径一般和 php 在同一个目录) /usr/local/php-7.2.2/bin/php-config,第二个 --enable,是开启 Swoole 的 ssl 功能,第三个 --enable(可选参数),是开启 Swoole 支持 http2 相关的功能
  13. tioncico@tioncico-PC:/tmp/swoole-src-4.4.23$ ./configure --with-php-config=/usr/local/php-7.2.2/bin/php-config --enable-openssl --enable-http2
  14. ## 编译 Swoole 并把编译好的文件移动到 php 的扩展目录(前面的配置 php 版本的扩展目录) 需要root权限
  15. tioncico@tioncico-PC:/tmp/swoole-src-4.4.23$ sudo make && make install
  16. ## 编译成功会显示如下:
  17. Build complete.
  18. Don't forget to run 'make test'.
  19. Installing shared extensions: /usr/local/php-7.2.2/lib/php/extensions/no-debug-non-zts-20160303/
  20. Installing header files: /usr/local/php-7.2.2/include/php/

这个时候已经安装成功,需要修改 php 配置文件 php.ini,在最后面增加如下内容:

  1. extension=swoole.so

注意:不知道 php.ini 所在目录时,您可以通过运行 php --ini 确定。 例如,我这里 php.ini 是在 /usr/local/php-7.2.2/etc 目录:

  1. tioncico@tioncico-PC:/tmp/swoole-src-4.4.23$ php --ini
  2. Configuration File (php.ini) Path: /usr/local/php-7.2.2/etc
  3. Loaded Configuration File: /usr/local/php-7.2.2/etc/php.ini
  4. Scan for additional .ini files in: (none)
  5. Additional .ini files parsed: (none)

成功安装 Swoole 之后,通过 php --ri swoole 查看 Swoole 扩展 的信息:

  1. tioncico@tioncico-PC:/tmp/swoole-src-4.4.23$ php --ri swoole
  2. swoole
  3. Swoole => enabled
  4. Author => Swoole Team <team@swoole.com>
  5. Version => 4.4.23
  6. Built => Jan 23 2021 18:16:30
  7. coroutine => enabled
  8. epoll => enabled
  9. eventfd => enabled
  10. signalfd => enabled
  11. cpu_affinity => enabled
  12. spinlock => enabled
  13. rwlock => enabled
  14. openssl => OpenSSL 1.0.2k-fips 26 Jan 2017
  15. http2 => enabled
  16. pcre => enabled
  17. zlib => 1.2.7
  18. mutex_timedlock => enabled
  19. pthread_barrier => enabled
  20. futex => enabled
  21. async_redis => enabled
  22. Directive => Local Value => Master Value
  23. swoole.enable_coroutine => On => On
  24. swoole.enable_library => On => On
  25. swoole.enable_preemptive_scheduler => Off => Off
  26. swoole.display_errors => On => On
  27. swoole.use_shortname => On => On
  28. swoole.unixsock_buffer_size => 8388608 => 8388608

到此,Swoole 扩展就安装完毕。

常见问题

phpize 命令不存在

安装 phpize

  1. yum install php-devel ## centos
  2. sudo apt-get install php-dev ## ubuntu

提示 swoole.so.so 类似的报错

说明你的 phpize 版本和 php-config 设定的版本不一致,请重新编译

phpize 命令也可以使用绝对路径: php安装路径/bin/phpize 用于执行创建编译文件。 在之后的 --with-php-config 也得使用同样的路径: php安装路径/bin/php-config

安装成功 php —ri 没有 Swoole 扩展信息

说明你的 php 命令行版本,和安装 Swoolephp 版本不一致,可以通过: php安装路径/bin/php --ri swoole 进行确认是否安装成功