mac下为php7.4.5安装swoole4.5.0扩展时所遇到的问题及解决方案

之前已成功在本机把PHP版本从7.3.15升级到了php7.4.5,具体编译参数可见之前的一篇文章。

一如即往的从我有道云笔记中找到原先为其它PHP7.3.15版本安装swoole的记录,直接把原先的参数复制过来了

# sudo /Users/mac/service/php745/bin/phpize 
# sudo ./configure --enable-openssl --enable-http2 --enable-mysqlnd --enable-sockets -with-openssl-dir=/usr/local/Cellar/openssl/1.0.2q/ --with-php-config=/Users/mac/service/php745/bin/php-config

之后也顺利的sudo make 及sudo make install安装成功,并在扩展目录下成功的生成了swoole.so文件。

但是在重启PHP服务后发现swoole扩展并没有安装上!

查看PHP启动时报错信息为:

$ sudo /Users/mac/service/php745/sbin/php-fpm

[01-May-2020 15:02:21] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /Users/mac/service/php745/lib/php/extensions/no-debug-zts-20190902/swoole.so (dlopen(/Users/mac/service/php745/lib/php/extensions/no-debug-zts-20190902/swoole.so, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

  Referenced from: /Users/mac/service/php745/lib/php/extensions/no-debug-zts-20190902/swoole.so

  Reason: image not found), /Users/mac/service/php745/lib/php/extensions/no-debug-zts-20190902/swoole.so.so (dlopen(/Users/mac/service/php745/lib/php/extensions/no-debug-zts-20190902/swoole.so.so, 9): image not found)) in Unknown on line 0

简单网上搜了一下,网上有针对此问题的相关说明,有的说是要先加载sockets.so扩展,有的说要先加载pdo_mysql.so扩展,但这两个扩展我在之前编译安装PHP时已经加上了,并且生效了,所以不是这两个扩展的问题:

相同的编译安装参数,在之前为其它PHP版本安装swoole扩展时并无问题,难道php7.4.5不兼容swoole4.5.0?非也!

在仔细又看了下之前PHP7.4.5的编译安装参数,如下图:

发现了可能的问题所在,即编译时-with-openssl-dir参数与PHP引用的openssl所用的版本不一致所致,在之前安装php7.4.5时我并没有用之前为PHP7.3.15用的/usr/local/Cellar/openssl/1.0.2q/,而是改为用/usr/local/opt/openssl@1.1/了。

初步怀疑是此问题,就尝试把编译参数改为如下:

./configure --enable-openssl --enable-http2 --enable-mysqlnd --enable-sockets -with-openssl-dir=/usr/local/opt/openssl@1.1/ --with-php-config=/Users/mac/service/php745/bin/php-config

再sudo make 及sudo make install

之后swoole扩展安装成功,如下图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值