这里需要安装rabbitmq-c和amqp扩展
rabbitmq-c : https://github.com/alanxz/rabbitmq-c/tree/v0.11.0
amqp : PECL :: Package :: amqp
首先一定要先升级openssl ,我这里最低也需要1.1.1 ,给我坑够呛
克隆如果没通过验证 , 就去本地开小飞机 , 然后克隆 , ftp传上来
- cd /usr/local
- git clone https://github.com/alanxz/rabbitmq-c.git
- cd /usr/local/rabbitmq-c
- mkdir build && cd build \
- cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..
- cmake --build . --target install
- cd /usr/local/rabbitmq-c/lib64
- cp /usr/local/rabbitmq-c/lib64/librabbitmq.so /usr/lib
- cp /usr/local/rabbitmq-c/lib64/librabbitmq.so.4 /usr/lib
- echo "include /usr/local/lib" >> /etc/ld.so.conf
- ldconfig
这里把rabbitmq-c 放在了 /usr/local/rabbitmq-c
如果出现下图 , 可以第五行运行为
/usr/local/cmake-3.26.1-linux-x86_64/bin/cmake -DOPENSSL_ROOT_DIR=/usr/local/openssl3.0.7 -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..
如果编译感觉出问题 , 可以把build文件夹删除 , 重新来过
这里第5行一定加上地址 , 后面安装amqp会用到
第6行一定看清有一个 ' . ' , 否则必失败
解决方案:
我这里,安装rabbitmq-c时,cmake操作时指定了安装位置,cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..
,那我们就应该
- cp /usr/local/rabbitmq-c/lib64/librabbitmq.so /usr/lib
- cp /usr/local/rabbitmq-c/lib64/librabbitmq.so.4 /usr/lib
- echo "include /usr/local/lib" >> /etc/ld.so.conf
- ldconfig
这时我们重新编译安装amqp扩展,会发现不再报错,已经可以成功编译安装amqp扩展了。
- wget http://pecl.php.net/get/amqp-1.11.0.tgz
-
- tar -zxf amqp-1.11.0.tgz
-
- cd amqp-1.10.2
-
- /www/server/php/81/bin/phpize
-
- ./configure --with-php-config=/www/server/php/81/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c
-
- make && make install
如果报错 collect2: makefile:236:amqp.la Error1 , 则需要 ln -s /usr/local/rabbitmq-c/lib64 /usr/local/rabbitmq-c/lib 建立软链
如果成功会打印类似下面的地址, 告诉你扩展包在哪里
/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902
进入 /www/server/php/81/etc 文件夹 , 修改配置: 编辑php-cli.ini和php.ini两个文件,在文件后面追加
- [amqp]
- extension = amqp.so
重启php , 开启一个新的文件打印一下phpinfo试试有没有amqp
- echo phpinfo();
命令行查看
php -m
php --ri amqp