在lnmp 环境下用 pecl install swoole 安装swoole,运行php出现警告
NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so (libnghttp2.so.14: cannot open shared object file: No such file or directory), /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so.so (/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
后发现是扩展加载顺序的原因,应该把extension=swoole.so加到sockets的加载后面,需要先安装sockets扩展:
第一步:在lnmp找到php安装的目录
我这里是:/opt/lnmp1.5/src/php-7.2.6 lnmp自带的php 扩展 在ext目录下cd /opt/lnmp1.5/src/php-7.2.6/ext/sockets 进入到sockets文件夹
第二步:/usr/local/php/bin/phpize,得到数据
第三步: 使用如下命令编译安装
1 2 |
|
第四步:修改配置文件重启
再修改/usr/local/php/etc/php.ini 查找:extension = 再最后一个extension= 后面添加上extension = "sockets.so" 保存,执行/etc/init.d/php-fpm restart 重启。
其他:
如果在安装时出错,libnghttp2.so.14: cannot open shared object file
具体内容如下:
PHP Warning: PHP Startup: Unable to load dynamic library ‘swoole.so’ (tried: /softs/php/lib/php/extensions/no-debug-zts-20170718/swoole.so (libnghttp2.so.14: cannot open shared object file: No such file or directory), /softs/php/lib/php/extensions/no-debug-zts-20170718/swoole.so.so (/softs/php/lib/php/extensions/no-debug-zts-20170718/swoole.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Extension ‘swoole’ not present
原来是找不到libnghttp2.so,
但是 http2 已经安装过。
解决的方法是,
sudo ldconfig