CentOS7安装RabbitMQ 全程记录备忘

 近日心血来潮在vmware虚拟机 装了centos7 ,测试安装体验了一把RabbitMQ(我安装的版本是3.7.6) ,过程比较坎坷,记录备忘(主要操作步骤参考:https://www.rabbitmq.com/install-rpm.html

    

一、安装ErLang

yum install erlang正常来讲 这样应该就安装好了。。。可能因为我的centos是最小化安装的原因 一直提示缺少各种依赖,最后根据官网的 Zero-dependency Erlang from RabbitMQ 

安装成功 具体如下:

To use Erlang 20.x on CentOS 7:

# In /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

保存 退出  再执行  yum install erlang   成功

二、安装RabbitMQ Server

下载:

wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.6/rabbitmq-server-3.7.6-1.el7.noarch.rpm


(需要root权限)

rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
# this example assumes the CentOS 7 version of the package
yum install rabbitmq-server-3.7.6-1.el7.noarch.rpm


三、运行MQ


启动:/sbin/service rabbitmq-server start 

停止:/sbin/service rabbitmq-server stop

重启:/sbin/service rabbitmq-server restart

开机启动:chkconfig rabbitmq-server on

四、配置

cd /etc/rabbitmq
cp /usr/share/doc/rabbitmq-server-3.7.6/rabbitmq.config.example /etc/rabbitmq/
mv rabbitmq.config.example rabbitmq.config


设置用户远程访问:

vi /etc/rabbitmq/rabbitmq.config

找到这一行 去掉%%和后面的逗号保存 然后重启MQrabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置


五、开启web界面管理工具

rabbitmq-plugins enable rabbitmq_management 

service rabbitmq-server restart

访问:http://ip:56762/

最后:记得放开防火墙的端口:


firewall-cmd --zone=public --permanent --add-port=5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --reload


或者

/sbin/iptables -I INPUT -p tcp --dport 5672 -j ACCEPT 

/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT


六、PHP连接测试

利用官网提供的类库php-amqplib

在项目comoposer添加

{"require": {"php-amqplib/php-amqplib":">=2.6.1"} }

然后:

composer install

下面是测试代码:

Send(https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/php/send.php):


<?php 
require_once './../../vendor/autoload.php'; 
use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage;
 $connection = new AMQPStreamConnection('10.0.200.64', 5672, 'guest', 'guest'); 
$channel = $connection->channel(); 
$channel->queue_declare('hello', false, false, false, false); 
$msg = new AMQPMessage('Hello World2!'); 
$channel->basic_publish($msg, '', 'hello'); 
echo " [x] Sent 'Hello World!'\n"; 
$channel->close(); 
$connection->close();



receive(https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/php/receive.php):


<?php 
require_once './../../vendor/autoload.php';
 use PhpAmqpLib\Connection\AMQPStreamConnection; 
$connection = new AMQPStreamConnection('10.0.200.64', 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();


分别运行:php send.php和php receive.php

应该有如下截图:




分享至
2018-07-02 发布 ┊ 1485 人浏览 ┊ 0 人评论 ┊ 来源:原创 ┊ 收藏
返回顶部