这里需要安装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/localgit clone https://github.com/alanxz/rabbitmq-c.gitcd /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/lib64cp /usr/local/rabbitmq-c/lib64/librabbitmq.so /usr/libcp /usr/local/rabbitmq-c/lib64/librabbitmq.so.4 /usr/libecho "include /usr/local/lib" >> /etc/ld.so.confldconfig
这里把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行一定看清有一个 ' . ' , 否则必失败
librabbitmq.so.4: cannot open shared object file: No such file or directory
解决方案:
我这里,安装rabbitmq-c时,cmake操作时指定了安装位置,cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..
,那我们就应该
cp /usr/local/rabbitmq-c/lib64/librabbitmq.so /usr/libcp /usr/local/rabbitmq-c/lib64/librabbitmq.so.4 /usr/libecho "include /usr/local/lib" >> /etc/ld.so.confldconfig
这时我们重新编译安装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
命令行查看
php -m
php --ri amqp
来源地址:https://blog.csdn.net/s1095622320/article/details/127691313