# windows下安装rabbitmq以及php扩展amqp
## 一、安装RabbitMQ服务
### **1、安装Erlang 环境**
**下载地址<http://www.erlang.org/downloads>**
**![](https://img.kancloud.cn/4b/78/4b78b325014c1bb5f6136be298203c6e_1105x487.png "fig:")**
\*\* 我选的是64位 这个根据自己情况下载,双击安装之\*\*
### **2、安装RabbitMQ 服务端**
**下载地址<http://www.rabbitmq.com/download.html>**
**![](https://img.kancloud.cn/0f/c4/0fc4286514af362f7c317ebd5568455b_1025x694.png "fig:")**
**双击安装**
**然后以管理员身份运行CMD 进入RabbitMQ目录**
**![](https://img.kancloud.cn/07/5d/075dbf232dfa441db78e92cbff43da4e_413x46.png "fig:")**
![](https://img.kancloud.cn/78/b5/78b5aa731fbe8814e36c330303634439_756x342.png)**执行**
**可能会报错提示 已经运行 这个时候执行**
**Linux/win服务器防火墙开启端口**
```
<pre class="calibre8">```
# 将mq的tcp监听端口和网页管理端口都设置成允许远程访问
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=5672/tcp
systemctl restart firewalld.service
```
```
**然后再次启动就好了**
### **3、开启配置管理插件**
**安装好后需要安装RabbitMQ-Plugin**s,在sbin目录下执行命令:
> ```
> <pre class="calibre8">```
> rabbitmq-plugins enable rabbitmq_management
>
> # 其会在/etc/rabbitmq目录下创建一个enabled_plugins文件,这是后台管理的配置文件。
> ```
> ```
**然后再次启动就好了**
**![](https://img.kancloud.cn/e7/df/e7dfe585d37e34010d75a45e4977609d_580x87.png "fig:")**
### 4、访问管理界面
**地址栏输入localhost:15672成功进入**
**用户设置**
- rabbitmq有一个默认的用户名和密码**,guest和guest,**但为了安全考虑,该用户名和密码只允许本地访问,如果是远程操作的话,需要创建新的用户名和密码;
### 5、添加管理用户
```
<pre class="calibre8">```
# root权限
rabbitmqctl add_user username passwd //添加用户,后面两个参数分别是用户名和密码
rabbitmqctl set_permissions -p / username ".*" ".*" ".*" //添加权限
rabbitmqctl set_user_tags username administrator //修改用户角色,将用户设为管理员
```
```
> `rabbitmqctl add_user admin yourpassword # 增加普通用户 123456`
>
> `rabbitmqctl set_user_tags admin administrator # 给普通用户分配管理员角色`
>
> ok,你可以在你的浏览器上输入:http://服务器Ip:15672/ 来访问你的rabbitmq监控页面。使用刚刚添加的新用户登录。
注意:创建的新用户默认角色为空。
**用户命令汇总说明**
```
<pre class="calibre8">```
新建用户:rabbitmqctl add_user username passwd //添加用户,后面两个参数分别是用户名和密码
删除用户:rabbitmqctl delete_user username
改密码: rabbimqctl change_password {username} {newpassword}
设置用户角色:rabbitmqctl set_user_tags {username} {tag ...} //修改用户角色,将用户设为管理员
rabbitmqctl set_permissions -p / username ".*" ".*" ".*" //添加权限
```
```
```
<pre class="calibre8">```
权限说明:
rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}
Vhostpath:虚拟主机,表示该用户可以访问那台虚拟主机;
user:用户名。
Conf:一个正则表达式match哪些配置资源能够被该用户访问。
Write:一个正则表达式match哪些配置资源能够被该用户设置。
Read:一个正则表达式match哪些配置资源能够被该用户访问。
虚拟主机:
默认的用户和队列都是在/虚拟机下。
# 创建一个虚拟主机
rabbitmqctl add_vhost vhost_name
# 删除一个虚拟主机
rabbitmqctl delete_vhost vhost_name
```
```
### 6、用户的角色说明
```
<pre class="calibre8">```
management:用户可以访问管理插件
policymaker:用户可以访问管理插件,并管理他们有权访问的vhost的策略和参数。
monitoring:用户可以访问管理插件,查看所有连接和通道以及与节点相关的信息。
administrator:用户可以做任何监视可以做的事情,管理用户,vhost和权限,关闭其他用户的连接,并管理所有vhost的政策和参数。
```
```
### 7、登录后进入主界面
**![](https://img.kancloud.cn/dc/43/dc43f2709cd0d2b71fcee9daeb804be9_787x399.png "fig:")**
**界面说明**
```
<pre class="calibre8">```
Overview:用来显示流量,端口,节点等信息,以及修改配置文件;
Connections:显示所有的TCP连接;
channels:显示所有的信道连接;
exchanges:显示所有的交换机以及创建删除等;
queues:显示所有的队列以及创建删除等;
admins:显示所有的用户以及用户管理;
```
```
-
## 二、安装php扩展amqp
先查看自己的php版本
![](https://img.kancloud.cn/76/09/7609af1ee0edabbb2905b989a75da59e_973x822.png)**记住版本 至于这个线程安全问题 这里引用了别人的自己看看吧** <http://blog.csdn.net/aoyoo111/article/details/19021295>
**接下来下载dll文件 地址**<http://pecl.php.net/package/amqp>
![](https://img.kancloud.cn/39/b5/39b5c238c3a017a65a94b97aaa3dc1c6_935x490.png)**下载稳定版的,点击DLL**
**![](https://img.kancloud.cn/6e/61/6e6155e3c1578b75f4feae5a31c45c0a_883x555.png "fig:")**
**php版本 ,X86 和X64 根据自己情况 , NTS 和 TS 就是那个thread safty 的状态 这个大家都会看吧 就不多说了**
**下载解压**
**![](https://img.kancloud.cn/ea/c6/eac61faac438f358ac627b3551bcec24_708x232.png "fig:")**
**将php\_amqp.dll文件放到php目录的ext文件夹下 见下图:**
**![](https://img.kancloud.cn/5c/f8/5cf881b6e9a1b2c0fd5882223134b1dc_779x342.png "fig:")**
**将rabbitmq.4.dll文件放到php根目录 见下图:**
**![](https://img.kancloud.cn/6c/70/6c707de63db8c371fb7b8f1b59594593_548x197.png "fig:")**
**php.ini里面添加**
```
<pre class="calibre8">```
extension=php_amqp.dll
```
```
**apache 修改http.conf 文件 添加**
```
<pre class="calibre8">```
LoadFile "D:/XAMPP/php/rabbitmq.4.dll"
```
```
**之后重启apache**
<https://www.cnblogs.com/88phper/p/8296066.html>