环境:win10、Ubuntu18.04、php7.2、swoole4.6.6
安装过程:
apt update
apt upgrade
apt install -y php7.2
apt -y install php7.2-fpm
apt -y install php7.2-mysql
apt -y install php7.2-curl
apt -y install php7.2-mbstring
apt -y install php7.2-xml
apt -y install php7.2-intl
apt -y install php7.2-dev
apt -y install php7.2-gd
apt -y install php7.2-gmp
apt -y install php7.2-zip
apt -y install openssl
apt -y install php7.2-redis
apt -y install libcurl4-openssl-dev
使用pecl方式安装swoole:pecl install swoole。
在/etc/php/7.2/cli/php.ini文件的末尾添加一行配置【extension=swoole.so】。
vim /etc/php/7.2/cli/php.ini
同时按住键盘【ctrl+G】,将光标移动到文件末尾
点击键盘【i】,将vim切换到编辑模式。
点击回车键,新起一行,如果新行中有【;】,则删除。
输入【extension=swoole.so】。
同时按住键盘【shif+:】,进入vim的命令模式,输入【wq!】,强制保存修改的内容,并同时完成退出。
说明:【/etc/php/7.2/cli/php.ini】是PHP的配置文件,如果通过该路径找不到该文件,可以执行【php -i】命令,在输出中找到【Loaded Configuration File:】,后面的路径就是PHP的配置文件路径。
执行完上述命令后,在命令行执行【php -m】查看输出的PHP已安装模块列表中是否存在swoole,存在,则安装成功,不存在,则安装失败。可重新执行一遍安装流程。
遇到的问题及解决方案:
1、开启enable-swoole-curl报错。
错误信息:
In file included from /home/vagrant/build/swoole-src-4.6.1/ext-src/swoole_runtime.cc:21:0:
./thirdparty/php/curl/curl_arginfo.h:8:10: fatal error: curl/curl.h: No such file or directory
原因:缺少依赖,libcurl4-openssl-dev
解决方案:apt -y install libcurl4-openssl-dev
2、安装完swoole,在php.ini中添加上【extension=swoole.so】,执行命令php -m后出现如下错误,在显示出来的PHP已安装模块列表中没有swoole。
错误信息:PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/lib/php/20170718/swoole.so (/usr/lib/php/20170718/swoole.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/swoole.so.so (/usr/lib/php/20170718/swoole.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
原因:编译时启用了【--enable-swoole-json】、【--enable-swoole-curl】这两个参数。
解决方案:暂未找到,如非必需,可以先不启用这两个参数。