# windows下安装rabbitmq以及php扩展amqp
## 一、安装RabbitMQ服务
### **1、安装Erlang 环境**
**下载地址<http://www.erlang.org/downloads>**
****
\*\* 我选的是64位 这个根据自己情况下载,双击安装之\*\*
### **2、安装RabbitMQ 服务端**
**下载地址<http://www.rabbitmq.com/download.html>**
****
**双击安装**
**然后以管理员身份运行CMD 进入RabbitMQ目录**
****
**执行**
**可能会报错提示 已经运行 这个时候执行**
**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文件,这是后台管理的配置文件。
> ```
> ```
**然后再次启动就好了**
****
### 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、登录后进入主界面
****
**界面说明**
```
<pre class="calibre8">```
Overview:用来显示流量,端口,节点等信息,以及修改配置文件;
Connections:显示所有的TCP连接;
channels:显示所有的信道连接;
exchanges:显示所有的交换机以及创建删除等;
queues:显示所有的队列以及创建删除等;
admins:显示所有的用户以及用户管理;
```
```
-
## 二、安装php扩展amqp
先查看自己的php版本
**记住版本 至于这个线程安全问题 这里引用了别人的自己看看吧** <http://blog.csdn.net/aoyoo111/article/details/19021295>
**接下来下载dll文件 地址**<http://pecl.php.net/package/amqp>
**下载稳定版的,点击DLL**
****
**php版本 ,X86 和X64 根据自己情况 , NTS 和 TS 就是那个thread safty 的状态 这个大家都会看吧 就不多说了**
**下载解压**
****
**将php\_amqp.dll文件放到php目录的ext文件夹下 见下图:**
****
**将rabbitmq.4.dll文件放到php根目录 见下图:**
****
**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>
