1.安装rabbitmq-c
https://github.com/alanxz/rabbitmq-c/releases
wget -c https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz
tar zxf rabbitmq-c-0.8.0.tar.gz
cd rabbitmq-c-0.8.0
./configure --prefix=/usr/local/rabbitmq-c-0.8.0
make && make install
这里我是选择的0.8.0版本,0.9.0编译模式换成CMake。
2.安装amqp
官网:http://pecl.php.net/package/amqp
wget -c http://pecl.php.net/get/amqp-1.9.3.tgz
tar zxf amqp-1.9.3.tgz
cd amqp-1.9.3
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.8.0
make && make install
phpize以及php-config为自己环境真实目录
3.php.ini 添加模块
此处地址为模块地址路径
vi /usr/local/php/etc/php.ini
增加
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/amqp.so
systemctl restart php-fpm
即可
注:在编译安装amqp时遇到fatal error: amqp_ssl_socket.h: No such file or directory
这里感谢谷歌搜索https://github.com/alanxz/rabbitmq-c/issues/463提供的解决思路。
我在github找到amqp_ssl_socket.h文件,将内容复制到amqp重新编译就解决了!
github地址:https://github.com/alanxz/rabbitmq-c/blob/master/librabbitmq/amqp_ssl_socket.h
重启php systemctl restart php-fpm
查看php -m 查看amqp扩展安装成功。
============================================================================================
下面提供rabbitmq-c.0.9.0 版本安装
1.安装编译环境
yum install cmake gcc gcc-c++ make openssl-devel
2.安装rabbitmq-c
wget https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.zip
unzip v0.9.0.zip
cd rabbitmq-c-0.9.0/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c-0.9.0/
make && make install
3.安装amqp
wget http://pecl.php.net/get/amqp-1.9.4.tgz
tar zxf amqp-1.9.4.tgz
cd amqp-1.9.4
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.9.0
#由于rabbitmq-c编译出来的lib目录是lib64,所以我们要做一些小的修改
vim Makefile
#将 AMQP_SHARED_LIBADD = -Wl,-rpath,/usr/local/rabbitmq-c-0.9.0/lib -L/usr/local/rabbitmq-c-0.9.0/lib -lrabbitmq
#修改为 AMQP_SHARED_LIBADD = -Wl,-rpath,/usr/local/rabbitmq-c-0.9.0/lib64 -L/usr/local/rabbitmq-c-0.9.0/lib64 -lrabbitmq
make && make install
4.php添加模块
vi /usr/local/php/etc/php.ini
#增加
extension=amqp.so
重启php 即可