Mac PHP extendsion [swoole + redis+rabbitmq-c]

PHP添加扩展统一操作步骤
1) phpize
2) ./configure –with-php-config=/usr/local/Cellar/php@7.2/7.2.18/bin/php-config

注:使用到openssle时需要改为(填坑:微信小程序只能使用wss协议) ./configure –enable-openssl –with-php-config=/usr/local/Cellar/php@7.2/7.2.18/bin/php-config

当报错找不到openssl时, 先检查本机是否安装openssl, 如果安装则需要手动指定路径

/Users/xxx/Downloads/swoole-src-4.4.3/include/swoole.h:596:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
         ^~~~~~~~~~~~~~~
1 error generated.
make: *** [php_swoole_cxx.lo] Error 1

使用 –with-openssl-dir=/usr/local/Cellar/openssl@1.1/1.1.1d 指定路径

./configure --enable-openssl --with-openssl-dir=/usr/local/Cellar/openssl@1.1/1.1.1d --with-php-config=/usr/local/Cellar/php@7.2/7.2.18/bin/php-config

/usr/local/Cellar/php@7.2/7.2.18/bin/php-config 为你本机php-config文件位置
查找你本地的php-config文件, 命令为: locate php-config
3) make
4) make install (权限不够时, 添加sudo)
注: 编译出错时可使用 make clean

本机so文件编译后的安装位置
/usr/local/Cellar/php@7.2/7.2.18/lib/php/20170718/swoole.so
extension = “/usr/local/Cellar/php@7.2/7.2.18/lib/php/20170718/swoole.so”
注: /usr/local/Cellar/php@7.2/7.2.18/lib/php/20170718,此目录可存一切so文件

本机mac php.ini位置:
vim /usr/local/etc/php/7.2/php.ini 将so文件位置添加到php.ini里
无法定位php.ini文件时可使用locate php.ini然后通过你的php版本来判断

php.ini添加的配置:

因使用了hyperf框架, 框架要求将swoole shortname关闭, 顾有第一句配置

swoole.use_shortname = off
extension ="/usr/local/Cellar/php@7.2/7.2.18/lib/php/20170718/swoole.so"
extension ="/usr/local/Cellar/php@7.2/7.2.18/lib/php/20170718/redis.so"

php扩展下载地址:
http://pecl.php.net/package/swoole
http://pecl.php.net/package/redis

安装rabbitmq-c

wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz
tar -zxvf rabbitmq-c-0.8.0.tar.gz
cd rabbitmq-c-0.8.0
./configure –prefix=/usr/local/rabbitmq-c
make
make install

或者直接使用pecl安装
一般出现报错:“Cannot find igbinary.h”。通常是由于使用如下指令安装Redis造成的:
pecl install redis
解决办法也很简单,Redis默认需要igbinary驱动,所以在安装Redis前,应当使用:
pecl install igbinary
安装好igbinary,再继续安装Redis即可正常安装。