PHP之RABBITMQ安装篇-WINDOWS下安装

AMQP扩展安装

  在PHP上安装RabbitMQ之前,先安装PHP的扩展amqp,在安装amqp之前,先查看自己的PHP版本

首先根据PHP的版本选择amqp的版本,再次要下载稳定版本的amqp。我的PHP是5.6.25的,所以选择1.4.0版本的amqp。下载地址:https://pecl.php.net/package/amqp

然后根据PHP的版本,线程安全是否激活,多少位的,来选择下载哪个版本:我的PHP是5.6版本的,线程安全的,x86 32位的,所以选择这个:

解压后:

将php_amqp.dll文件放到 php 目录下的ext文件夹下面

然后,再将 rabbitmq.1.dll 文件放到 php 根目录下:

然后,在 php.ini 里面(包括 apache 和 php 里面的,共 2 个),最后添加(强烈建议最后,避免出错):

[amqp]
extension=php_amqp.dll

然后,在 apache 里 httpd.conf 的最后添加:

LoadFile “E:/phpStudy/PHPTutorial/php/php-7.2.1-nts/rabbitmq.4.dll”
然后重启 apache ,查看 phpinfo();

记住上面的账号密码,后面登录后台会用到。
安装好 PHP 的 amqp 扩展后,接下来,我们安装erlang。
为什么要安装erlang呢?
因为 rabbitmq 服务端代码是使用并发式语言Erlang编写的,所以在安装 rabbitmq 的前提是安装Erlang。
下载地址:http://www.erlang.org/downloads

根据自己的电脑系统的位数,选择下载哪个:我的电脑系统是64位的

下载好之后:

双击,安装,点next,

安装好之后,要配置一下环境变量:
此电脑-->鼠标右键“属性”-->高级系统设置-->环境变量-->“新建”系统环境变量

变量名:ERLANG_HOME

变量值就是erlang的安装地址,点击确定。

然后,双击系统变量的path

点击“新建”,将%ERLANG_HOME%\bin 加入到path中,并确定,保存。

最后 windows键+R键,输入 cmd,再输入erl,看到版本号,就说明erlang安装成功了。

如果显示不了,首先确保环境变量设置好了并保存好了。然后再双击打开一下安装好的Erlang,然后再次操作,应该就可以了。

安装好erlang之后,就开始正式安装 RabbitMQ了。
下载地址:

双击安装,下一步,与erlang安装相同。
安装好 RabbitMQ后,再安装RabbitMQ-Plugins。打开命令行,cd切换到rabbitmq 的 sbin目录。
我的目录是:D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.8\sbin
然后在后面输入rabbitmq-plugins enable rabbitmq_management命令进行安装。

安装好之后,就可以登录后台了。然后,打开网址:http://localhost:15672 用上面的账号和密码登陆进去

下面开始测试:
强烈建议在php官方手册里学习 php扩展AMQP代理,如何创建队列
在测试之前,我要介绍一下php-amqplib 这个封装好的类库。
首先安装Composer 可以参考https://www.runoob.com/w3cnote/composer-install-and-usage.html,主要是用来安装php-amqplib 这个类库。

 

 

然后打开cmd,cd到项目目录下,composer require php-amqplib/php-amqplib进行安装。

 

然后等上几分钟,安装好了之后,在项目里会有vendor这个文件夹,里面就是php-amqplib这个类库。

 

然后在项目里创建编写两个php程序,一个send.php:
<?php
require_once(__DIR__ . './vendor/autoload.php');
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('hello',false,false,false,false);
$msg =new AMQPMessage('Hello World!');
$channel->basic_publish($msg, '', 'hello');
echo " [x] Sent 'Hello World!'\n";

$channel->close();
$connection->close();

 

一个recv.php:

<?php
require_once(__DIR__ . './vendor/autoload.php');
use PhpAmqpLib\Connection\AMQPStreamConnection;
$connection =new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('hello',false,false,false,false);
echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";
$callback = function($msg){
    echo " [x] Received ",$msg->body,"\n";
};
$channel->basic_consume('hello', '',false,true,false,false, $callback);
while(count($channel->callbacks)) {
    $channel->wait();
}
$channel->close();
$connection->close();

 

然后打开cmd,cd到项目目录下,运行两个 php 程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值