1.先安装rabbitmq-c
wget https://github.com/alanxz/rabbitmq-c/archive/refs/tags/v0.11.0.tar.gz
tar -zxvf v0.11.0.tar.gz -C /usr/local/
cd /usr/local/rabbitmq-c-0.11.0/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c-0.11.0
cmake --build . --target install
ln -s /usr/local/rabbitmq-c-0.11.0/lib64 /usr/local/rabbitmq-c-0.11.0/lib
2.安装php-amqp
wget https://pecl.php.net/get/amqp-1.11.0.tgz
tar -zxvf amqp-1.11.0.tgz
cd amqp-1.11.0/
/www/server/php/73/bin/phpize
#phpize
./configure --with-php-config=/www/server/php/73/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.11.0
make && make install
3.php.ini启用扩展并重启
extension=/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/amqp.so
4.phpinfo验证查看
问题:
phpinfo()有显示 php -m 无显示 amp
php -m|grep amqp
如果能在phpinfo()有显示,是因为你在php.ini 文件下添加了 .so文件,并重启了php服务。
但是,php -m 无显示,就是因为只在php.ini文件添加了.so文件,而没有在php.cli文件进行.so文件的添加。
位置:/www/server/php/73/etc/php-cli.ini加入
extension=/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/amqp.so
windows下安装amqp
1.从phpinfo中查看php是线程安全还是非线程安全的
php版本7.4 X64, NTS 和 TS 就是那个thread safty 的状态disabled为nts,根据自己情况
2.下载dll文件对应自己的php版本http://pecl.php.net/package/amqp
我是7.4版本下载的是https://windows.php.net/downloads/pecl/releases/amqp/1.11.0/php_amqp-1.11.0-7.4-nts-vc15-x64.zip
3.解压将php_amqp.dll文件放到php目录的ext文件夹下,将rabbitmq.4.dll文件放到php根目录
4.php.ini里面添加extension=php_amqp.dll 并重启
5.phpinfo查看搜索amqp查看结果