一、环境
mac自带的PHP是7.1.16,后来用brew自己安装的是7.4.3给7.4.3安装swoole扩展
二、问题描述
1、描述:
只要是--enable-openssl的话,编译安装和brew安装都报错。不开启ssl的话编译安装是可以的,但安装后没有openssl扩展
2、报错:
PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/local/lib/php/20190902/swoole.so (dlopen(/usr/local/lib/php/20190902/swoole.so, 9): image not found), /usr/local/lib/php/20190902/swoole.so.so (dlopen(/usr/local/lib/php/20190902/swoole.so.so, 9): image not found)) in Unknown on line 0
三、寻找问题
1、 初步定位问题:应该是在openssl扩展上。
2、用brew search openssl命令查看,果然有个文件openssl@1.1,这个是之前报错时查找解决方案说是没安装openssl导致的,所以用brew安装了一下openssl(其实之前有openssl,重新安装了个高版本的)
3、定位问题:
在/usr/local/opt目录下查看,果然有两openssl,应该是openssl路径的问题。
四、解决
删除之前安装的文件,重新进行编译安装,在安装时指明openssl的路径
./configure --with-php-config=/usr/local/bin/php-config --enable-openssl CPPFLAGS="-I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
完成用php --ri swoole查看,openssl也有了