1. 简介
AMQP是一种高效的、可靠的、跨语言的消息协议,是由JPMorganChase公司开发的,基于Advanced Message Queuing Protocol(AMQP)。它允许应用程序通过代理传递消息并实现异步、松散耦合和模块化。AMQP支持多种语言,其中PHP是其中之一。
2. 安装前准备
2.1 安装依赖库
在安装AMQP扩展之前需要安装一些依赖库。
yum install -y libtool autoconf automake make cmake gcc gcc-c++
安装完成后可以使用命令rpm -qa | grep -i libtool
检查是否已经安装。如果已经安装,会显示出安装的版本。
2.2 安装Erlang
AMQP是基于Erlang语言开发的,所以需要安装Erlang环境。可以用以下命令安装:
yum install -y erlang
一般来说,如果已安装依赖库,请跳过此步骤。
3. 安装AMQP扩展
3.1 下载安装包
下载安装包可从http://pecl.php.net/package/amqp下载,可以用以下命令进行下载:
cd /usr/local/src
wget http://pecl.php.net/get/amqp-1.7.2.tgz
3.2 安装
tar -xvf amqp-1.7.2.tgz
cd amqp-1.7.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
执行上述命令后,会在PHP的扩展目录(一般为/usr/local/php/lib/php/extensions/no-debug-non-zts-xxxxxx,根据具体版本而定)下生成amqp.so扩展文件。
3.3 配置php.ini
在php.ini文件中添加extension=amqp.so,并重启PHP-FPM。
extension=amqp.so
4. 测试
通过以下代码可以测试AMQP是否安装成功。
//设置连接参数
$connection = new AMQPConnection(array(
'host' => 'localhost',
'port' => 5672,
'login' => 'guest',
'password' => 'guest'
));
//连接到Broker
$connection->connect();
//创建通道
$channel = new AMQPChannel($connection);
//创建队列
$queue = new AMQPQueue($channel);
$queue->setName('test');
$queue->setFlags(AMQP_DURABLE);
$queue->declare();
//关闭连接
$connection->disconnect();
执行代码后,如果没有报错,则表示AMQP安装成功。