Centos7 手动编译 RabbitMQ ,并安装php amqp
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的更多相关文章
- centos7手动编译安装Libvirt常见问题
由于功能需要,体验了手动编译安装Libvrt,还是碰到了不少问题,这里总结如下仅限于centos7: 1.configure: error: You must install the pciacces ...
- CentOS7手动编译安装内核4.11.7
1. 进入/usr/src/目录 cd /usr/src 2. 下载内核源码,网址:https://www.kernel.org wget https://cdn.kernel.org/pub/lin ...
- Centos7服务器上RabbitMQ单机安装
一.背景 最近项目中用到了RabbitMQ,但是发现自己本地没有安装,此文记录一下本地RabbitMQ的安装过程.注意不同的系统安装方式略有不同,此处我们记录的是Centos7的安装方式. 二.安装方 ...
- Centos7手动编译安装Python3
Python3的安装方式非常的简单,首先去到Python下载目录下载想要的Python包,这里我选择了3.6.5版本 $ wget https://www.python.org/ftp/python/ ...
- 手动编译 Nginx 并安装 VeryNginx
VeryNginx 是个非常有意思且便捷的 Nginx 扩展程序.最近新开了台 VPS,便想体验一下它带来的快感. VeryNginx 有个不超过 5 行的安装方法,但作为强迫症我更喜欢使用自己编译的 ...
- ffmpeg为视频添加时间戳 - 手动编译ffmpeg
FFMPEG给视频加时间戳水印 项目中需要给视频添加时间戳,理所当然最好用的办法是ffmpeg.在找到正确的做法前,还被网上的答案timecode给水了一下(水的不轻,在这里转了2天),大概是这样写的 ...
- 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 ...
- CentOS7下RabbitMQ服务安装配置胜多负少
RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...
- CentOS7下RabbitMQ服务安装配置 (亲测有效)
erlang 21.3 rabbitmq-server 3.7.14 下载地址 链接: https://pan.baidu.com/s/1g_T1Q_6zpyO3AepS0ZPgYQ 提取码: abq ...
随机推荐
- 原创!ngxtop-监控nginx的利器!!!
原创!ngxtop-监控nginx的利器!!! 无论名称还是界面,ngxtop的灵感均源自大名鼎鼎的top命令.ngxtop的功能就是,分析Nginx访问日志文件(以及其他日志文件,比如Apache2 ...
- 浏览器中点击链接,跳转qq添加好友的实现方式
做android三年了,都不知道到底干了啥,现在好好研究应该来得及,哈哈哈,希望看到文章的人共勉,哈哈哈(新手写文章,大佬轻喷,呜呜呜~) 好了,这篇只是记录下,项目中遇到的坑(MMP测试),哈哈哈, ...
- qDeleteAll与clear
qDeleteAll:专门用于指针容器,对容器或者迭代器中的每个对象进行delete操作,而不是从容器中移除对象.源代码如下: void qDeleteAll(ForwardIterator begi ...
- C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方
#include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方: 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)= ...
- c++学习知识整理
<iomanip>传送门:https://baike.baidu.com/item/iomanip/3319954?fr=aladdin linux为何用./运行程序:https://bl ...
- org.apache.ibatis.cache.CacheException: Error serializing object
异常: 十二月 26, 2017 3:38:05 下午 org.apache.jasper.servlet.TldScanner scanJars 信息: At least one JAR was s ...
- 各种DTO类最好有 无参数的构造方法
以一下这个类为例 @Getter @Setter @ToString class Person { private String s; public Person(String s) { this.s ...
- MySQL:服务无法启动(1067)问题
打开安装文件下的my.ini 找到: #Path to the database rootdatadir="C:/ProgramData/MySQL/MySQL Server 5.5/dat ...
- Java 死锁以及死锁的产生
public class DeadLockSample { public static void main(String[] args) { DeadLock d1 = new DeadLock(tr ...
- vue中全局filter和局部filter怎么用?
需求: 将价值上加上元单位符号(全局filter) <template> <div> 衣服价格:{{productPrice|formatTime}} </div> ...