Mac Swoole 扩展安装 (解决OpenSSL 和 hiredis not found问题)

   为了使用SwooleDistributed, 今天安装了Swoole扩展。注意SD框架2.xx系列使用Swoole 1.x.x 版本, SD 3.x.x系列使用

Swoole 2.x.x 版本。这里使用Swoole 1.9.3 稳定版本


1  下载Swoole源码

https://github.com/swoole/swoole-src/releases/tag/v1.9.3-stable

cd swoole
phpize
./configure
make 
sudo make install  

安装成功之后php.ini文件中加上swoole.so

我编译时的参数包括:

sudo./configure --enable-sockets --enable-openssl --with-php-config=/usr/local/Cellar/php71/7.1.8_20/bin/php-config --enable-swoole-debug --enable-async-redis --prefix=/usr/local CPPFLAGS="-I/usr/local/opt/openssl/include"  LDFLAGS="-L/usr/local/opt/openssl/lib"


由于SwooleDistributed 需要使用openssl功能,在编译的时候需要加上参数 --enable_openssl

如果安装的时候出现问题

swoole-src-1.9.3-stable/include/swoole.h:353:10: fatal error: 'openssl/ssl.h' file not found

brew search openssl  查看有没有库

cp -R /usr/local/Cellar/openssl/1.0.2j/include/openssl /usr/local/include/
cp -R  /usr/local/Cellar/openssl/1.0.2j/include/openssl swoole1.9/include
以上方法即可解决

安装成功之后,输入php --ri swoole 会看到 openssl enable

如果需要使用异步redis客户端, 编译时加上参数--enable-async-redis , 但是可能会出现hiredis not found问题 

解决的办法:

1: make -j

2: sudo make install

安装的目录和文件如下:

    mkdir -p /usr/local/include/hiredis /usr/local/lib

    cp -a hiredis.h async.h read.h sds.h adapters /usr/local/include/hiredis

    cp -a libhiredis.dylib /usr/local/lib/libhiredis.0.13.dylib

    cd /usr/local/lib && ln -sf libhiredis.0.13.dylib libhiredis.dylib

    cp -a libhiredis.a /usr/local/lib

    mkdir -p /usr/local/lib/pkgconfig

    cp -a hiredis.pc /usr/local/lib/pkgconfig

3: sudo update_dyld_shared_cache
mac上使用这个命令

设置两个环境变量:

C_INCLUDE_PATH=/usr/local/include/ export C_INCLUDE_PATH

LIBRARY_PATH=/usr/local/lib/ export LIBRARY_PATH

即可安装成功



你可能感兴趣的:(Swoole,PHP)