RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统,底层基于Erlang语言。

一:centos7安装RabbitMQ

这玩意儿安装很扯淡,官方推荐rpm安装,rpm安装本身是最简单的,但是安装RabbitMQ却不简单,很可能需要修改仓库地址。不同linux版本不一样,centos6和centos7也不一样。我这里不用rpm,手动编译Erlang,然后选择编译好的RabbitMQ。

1:安装Erlang

1):先安装几个必要的插件

yum -y install gcc glibc-devel make ncurses-devel openssl-devel autoconf unixODBC unixODBC-devel socat
yum -y install wget

2):Erlang下载地址:http://www.erlang.org/downloads,我这里下载21.1版本

cd /usr/local/src/
wget http://erlang.org/download/otp_src_21.1.tar.gz #下载
tar -xvf otp_src_21..tar.gz #解压
./configure --prefix=/usr/local/erlang --without-javac #忽略java编译
make && make install #编译&&安装

make && make install 这两步很慢,巨慢无比,耐心等待。

3):进入我们安装后的目录测试一下是否安装成功

/usr/local/erlang/bin/erl  #用halt().退出,注意后面的点号,那是erlang的结束

安装成功

二:安装rabbitmq

1:下载地址:http://www.rabbitmq.com/download.html

2:因为我上面的Erlang是手动编译的,所以这里不选择rpm方式安装,直接下载解压包,从这里下载:https://github.com/rabbitmq/rabbitmq-server/releases

cd /usr/local/src/
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz
tar xvJf rabbitmq-server-generic-unix-3.7..tar.xz
mv rabbitmq_server-3.7./ /usr/local/rabbitmq #解压后移动到你想放到的目录

这个是编译好的,可以直接用。

3:设置环境变量,设置两个,一个是Erlang,一个是rabbitmq,打开文件/etc/profile文件,在文件最后加入以下三行:

vi /etc/profile
export PATH=$PATH:/usr/local/erlang/bin #erlang安装目录
export PATH=$PATH:/usr/local/rabbitmq/sbin #rabbitmq安装目录

运行命令生效:

source /etc/profile

启动一下:

rabbitmq-server start

成功

启动web管理后台:

rabbitmq-plugins enable rabbitmq_management #disable为关闭

开启防火墙,打开15672端口(启动成功后,访问控制台界面,前提是linux需要关闭防火墙,或者开启15672端口,否则控制台界面无法访问,如果在云服务器开启15672端口即可【关闭iptables防火墙:service iptables stop】

firewall开启防火墙端口方法

firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --reload #重启防火墙

iptables开启防火墙端口方法

iptables -A INPUT -p tcp --dport  -j ACCEPT #添加15672端口
iptables -L -n #看下 是否添加上去, 看到添加了

或者

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT   //添加命令行

service iptables restart  //重启防火墙

web界面出来了

guest用户被限制,只能通过127.0.0.1访问,当然也可以修改配置文件开启guest远程访问。这里我们新建一个用户,并授予管理员权限。
用户名:admin 密码:123

rabbitmqctl add_user admin  #添加用户
rabbitmqctl set_user_tags admin administrator #分配角色

登录成,登录之后为了安全可以切换到【admin】选项卡,把默认的guest用户删除

相关命令:命令在/usr/local/rabbitmq/sbin下

rabbitmq-server -detached #后台启动
rabbitmqctl stop #关闭服务
rabbitmqctl status #查看状态
rabbitmqctl list_users #列出角色

三:安装php扩展(我用的php7.2版本)

安装amqp扩展前需要安装rabbitmq-c,这里我是选择的0.8.0版本,0.9.0编译模式换成CMake。
下载地址:https://github.com/alanxz/rabbitmq-c

cd /usr/local/src/
wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz
tar -zxvf rabbitmq-c-0.8..tar.gz
cd rabbitmq-c-0.8.
./configure --prefix=/usr/local/rabbitmq-c
make && make install

php安装amqp扩展
下载地址https://pecl.php.net/package/amqp

cd /usr/local/src/
wget https://pecl.php.net/get/amqp-1.9.3.tgz
tar -zxf amqp-1.9..tgz
cd amqp-1.9.
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c
make && make install

然后在php.ini加上

vi /usr/local/php/etc/php.ini
extension = amqp.so

重启php打印phpinfo();或者linux系统使用php -m命令查看可以看到amqp安装成功

systemctl restart php-fpm
php -m

扩展安装成功,这时候就可以用PHP操作RabbitMQ了。

安装的AMQP扩展新旧版本有一些区别。主要体现在exchange和queue中有个declare的方法,新版分别更改成declarExchange()和declarQueue().

Centos7 手动编译 RabbitMQ ,并安装php amqp的更多相关文章

  1. centos7手动编译安装Libvirt常见问题

    由于功能需要,体验了手动编译安装Libvrt,还是碰到了不少问题,这里总结如下仅限于centos7: 1.configure: error: You must install the pciacces ...

  2. CentOS7手动编译安装内核4.11.7

    1. 进入/usr/src/目录 cd /usr/src 2. 下载内核源码,网址:https://www.kernel.org wget https://cdn.kernel.org/pub/lin ...

  3. Centos7服务器上RabbitMQ单机安装

    一.背景 最近项目中用到了RabbitMQ,但是发现自己本地没有安装,此文记录一下本地RabbitMQ的安装过程.注意不同的系统安装方式略有不同,此处我们记录的是Centos7的安装方式. 二.安装方 ...

  4. Centos7手动编译安装Python3

    Python3的安装方式非常的简单,首先去到Python下载目录下载想要的Python包,这里我选择了3.6.5版本 $ wget https://www.python.org/ftp/python/ ...

  5. 手动编译 Nginx 并安装 VeryNginx

    VeryNginx 是个非常有意思且便捷的 Nginx 扩展程序.最近新开了台 VPS,便想体验一下它带来的快感. VeryNginx 有个不超过 5 行的安装方法,但作为强迫症我更喜欢使用自己编译的 ...

  6. ffmpeg为视频添加时间戳 - 手动编译ffmpeg

    FFMPEG给视频加时间戳水印 项目中需要给视频添加时间戳,理所当然最好用的办法是ffmpeg.在找到正确的做法前,还被网上的答案timecode给水了一下(水的不轻,在这里转了2天),大概是这样写的 ...

  7. centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展

    centos7.6编译安装php7..11及redis/memcached/rabbitmq/openssl/curl等常见扩展 获取Php的编译参数方法: [root@eus-api-cms-bac ...

  8. CentOS7下RabbitMQ服务安装配置胜多负少

    RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...

  9. CentOS7下RabbitMQ服务安装配置 (亲测有效)

    erlang 21.3 rabbitmq-server 3.7.14 下载地址 链接: https://pan.baidu.com/s/1g_T1Q_6zpyO3AepS0ZPgYQ 提取码: abq ...

随机推荐

  1. .net框架 - Enum枚举

    概要 在C#或C++,java等一些计算机编程语言中,枚举类型是一种基本数据类型而不是构造数据类型. 在C语言等计算机编程语言中,它是一种构造数据类型. 它用于声明一组命名的常数,当一个变量有几种可能 ...

  2. D. Vasya and Triangle(思维, 三角形)

    传送门 题意: 给你 n, m, k, 问你是否存在一个三角形, 满足三角形的面积等于 n * m / k: 若存在, 输出YES, 且输出满足条件的三角形的三个坐标(答案有多种,则输出任意一种)   ...

  3. matlab 万能实用的非线性曲线拟合方法

    ——转载网络 在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整.几乎能解决所有离散参数非线性拟合的方法 第一步:得到散点数据 根据你 ...

  4. 洛谷 P1191 矩形 题解

    P1191 矩形 题目描述 给出一个 \(n \times n\)的矩阵,矩阵中,有些格子被染成白色,有些格子被染成黑色,现要求矩阵中白色矩形的数量 输入格式 第一行,一个整数\(n\),表示矩形的大 ...

  5. 35、sparkSQL及DataFrame

    一.saprkSQL背景 Spark 1.0版本开始,推出了Spark SQL.其实最早使用的,都是Hadoop自己的Hive查询引擎:但是后来Spark提供了Shark:再后来Shark被淘汰,推出 ...

  6. golang go程和出让时间片

    golang go程和出让时间片 func main() { go func(){ //创建一个子go程 ;i<;i++{ fmt.Println("--------fuck U--- ...

  7. 第十二周助教工作总结——NWNU李泓毅

    助教博客链接:https://www.cnblogs.com/NWNU-LHY/ 本次作业的要求:基于原型的团队项目需求调研与分析:https://www.cnblogs.com/nwnu-daizh ...

  8. Chapter Two

    Web容器配置 ~Tomcat配置 server.port配置了Web容器的端口号 error.path配置了当项目出错时跳转去的页面 session.timeout配置了session失效的时间 c ...

  9. windows 共享文件夹,和共享打印机

    达成的情形,目标主机上登陆用户设置密码,其他pc上需要目标主机的用户和密码才能访问其共享文件夹 步骤:1.目标主机,设置文件夹共享    在文件夹上右键-属性,点击共享选项卡,然后点击共享按钮,继续点 ...

  10. HearthBuddy的class276以及class247

    使用de4dot-cex反编译原版的hearthbuddy得到的 链接: https://pan.baidu.com/s/1hT79LpIjbyvODsjnkSe_5A 提取码: iemx class ...