# 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>