记一次安装PHP扩展swoole遇到的一些问题

系统版本信息

系统:Ubuntu18.04
PHP版本:7.4.3
在这里插入图片描述

如果ubuntu 没有安装 phpize 
可执行命令:sudo apt-get install php-dev    来安装phpize
  • 安装swoole:
下载源码
wget https://github.com/swoole/swoole-src/archive/v4.4.16.tar.gz
//下载完成后解压
tar -zxvf v4.4.16.tar.gz
开始安装
cd swoole-src-4.4.16 && \
phpize && \
./configure && \
make && sudo make install
  • 启用扩展
    编译安装到系统成功后,需要在 php.ini 中加入一行 extension=swoole.so 来启用 Swoole 扩展
    记一次安装PHP扩展swoole遇到的一些问题_第1张图片

  • 重启apache服务

service apache2 restart

到此我感觉就基本已经安装完成了,可以愉快的使用swoole扩展了,事实证明我的感觉是错误的!

错误:

报错信息如下:
PHP Warning: PHP Startup: Unable to load dynamic library ‘swoole.so’ (tried: /usr/lib/php/20190902/swoole.so (/usr/lib/php/20190902/swoole.so: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/swoole.so.so (/usr/lib/php/20190902/swoole.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.4.3 (cli) (built: Feb 23 2020 07:24:28) ( NTS )
Copyright © The PHP Group
Zend Engine v3.4.0, Copyright © Zend Technologies
with Zend OPcache v7.4.3, Copyright ©, by Zend Technologies

  • 解决方案:
    我的系统里有多个PHP版本,我的默认版本是7.4。
    但我默认的那个7.4版本没有安装 php7.4-dev程序包 ,所以接下来安装php7.4-dev程序包
sudo apt install php7.4-dev

运行php-config,以确保它指向的是php7.4版本
见下图:
记一次安装PHP扩展swoole遇到的一些问题_第2张图片

指向正确后,运行sudo pecl install swoole
注意:在运行之前请检查php扩展目录是否没有swoole.so文件(例如/ usr / lib / php / 20170718中的php7.2扩展目录)。因此,如果其中包含swoole.so文件,请手动将其删除

sudo pecl install swoole

根据自己系统带了哪些模块选择, 我的系统里缺少http2和postgresql, 所以这两个没选

enable sockets supports? [no] : yes
enable openssl support? [no] : yes
enable http2 support? [no] : 
enable mysqlnd support? [no] : yes
enable postgresql coroutine client support? [no] :

到此,错误就解决了!耐死坡肥!

你可能感兴趣的:(PHP)