Centos安装rabbitmq的php扩展php-amqp

栏目:Linux 作者:小天 点击: 10,195 次

主要是两个包:

1.rabbitmq-c的包

2.amqp的包

下载

首先是下载最新版的rabbitmq-c包:https://github.com/alanxz/rabbitmq-c/releases

wget https://codeload.github.com/alanxz/rabbitmq-c/tar.gz/master

然后下载最新版本的amqp:https://pecl.php.net/package/amqp

wget https://pecl.php.net/get/amqp-1.8.0.tgz

安装

现在开始进行关键的操作了,在网上找的方法很多都有问题,这是我的安装和配置方法,你可以借鉴一下,但是不能保证每台机器都能够正确的安装哦~

因为下载回来的两个文件都是无扩展名的,所以我们先将他改名,命令如下:
mv master rabbitmq-c.tar.gz && mv amqp amqp.tar.gz

先把两个包全都解压

tar zxvf rabbitmq-c.tar.gz && tar zxvf amqp.tar.gz

两个是有先后顺序的哦~

先安装rabbitmq-c-master

cd rabbitmq-c-master
yum install autoconf automake libtool
autoreconf -i

./configure --prefix=/usr/local/rabbitmq-c

最后显示一下内容表示正常

rabbitmq-c build options:
Host: x86_64-unknown-linux-gnu
Version: 0.8.0
SSL/TLS: openssl
Tools: yes
Documentation: no
Examples: yes

然后进行make和安装了.

make && make install

如果没有报错,那就是安装成功了,要是有错误,请在本文章下边回复,我们一起研究,嘿嘿~~

安装amqp-1.7.0

cd amqp-*

phpize
如果你使用WDCP面板,请运行:/www/wdlinux/php/bin/phpize

执行完phpize命令后你应该看到类似下边的内容

Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525

要是没有这个命令的话需要安装一下

yum install php-devel

如果自己自定义安装的php的话,phpize可能需要自己查找一下,执行以下命令:

find / -name "phpize"

以上这两步是没有phpize这个命令的才需要执行哦~~~

然后是configure,这个要根据你个人环境自己修改内容,这里展示的是我的

./configure --with-php-config=/usr/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c/

如果是WDCP环境,请执行以下脚本:
./configure --with-php-config=/www/wdlinux/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c

PS:这里解释一下

--with-php-config=/usr/bin/php-config 这个php-config根据你装的php而定,要是找不到请用find / -name php-config查找--with-librabbitmq-dir=/usr/local/rabbitmq-c/ 这个是指定你安装的rabbitmq-c的目录,我安装的是/usr/local/rabbitmq-c/因为在安装rabbitmq-c的时候我自己指定了安装目录了.

然后进行make和安装了

make && make install

这个应该不会出现什么问题.

在make install完成后他会提示

Installing shared extensions: /usr/lib64/php/modules/

以上是正常情况下,要是你自己编译的php,那么他会提示你别的路径,此时你需要找到这个路径里边的amqp.so文件,将他拷贝到/usr/lib64/php/modules/下.

最后安装完amqp后还不算完,咱们还要让php加载这个扩展,这个挺简单的,编辑php.ini文件添加一下内容

vim /etc/php.ini

[rabbitmq]
extension=amqp.so

这个随便找一个位置就可以了,之后咱们重启apache或者是php-fpm了

service httpd restart
service php-fpm restart

根据实际情况选择以上的命令.

php测试脚本

php测试rabbitmq的php扩展插件脚本

<?php
$cnn = new AMQPConnection();
$cnn->setHost('127.0.0.1');
$cnn->setLogin('guest');
$cnn->setPassword('guest');
if($cnn->connect()){
echo '连接成功';
}
?>

错误分析

PS:要是你在执行php测试文件的时候提示你一下信息,你需要看看你的amqp.so是不是在下面提示的文件夹中了,要是没有那你需要看看你在make install完amqp后他提示的那个路径,按照我上边红色的标识执行操作试试.

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/amqp.so' - /usr/lib64/php/modules/amqp.so: cannot open shared object file: No such file or directory in Unknown on line 0



声明: 本文由( 小天 )原创编译,转载请保留链接: Centos安装rabbitmq的php扩展php-amqp

------====== 本站公告 ======------
欢迎使用趣域网域名百科,我们将长期提供域名使用相关知识和投资域名的方法和技巧;并提供主机、服务器的解决问题和网站运营方法。