Linux搭建PHP下的RabbitMQ环境(php-amqp/rabbitmq-c/erlang)

本文演示环境

  • Red Hat 11.2.1-9
  • gcc (GCC) 11.2.1 20220127
  • OpenSSL v1.1.0
  • PHP 7.1

安装erlang

erlang和RabbitMQ有版本对应关系Erlang Version Requirements,需要选择正确的版本。

本文以erlang 26和RabbitMQ 3.13.2为例。

在这里插入图片描述

erlang下载地址

下载包上传服务器后:

tar -xvzf otp_src_26.2.5.tar.gz
cd otp_src_26.2.5
./configure --prefix=/usr/local/erlang --without-javac
make && make install

完成后编辑:

 vim /etc/profile

文件末尾加入配置并保存:

#erlang
PATH=$PATH:/usr/local/rabbitmq/erlang/bin

使配置生效:

source /etc/profile

验证安装成功:

erl

安装RabbitMQ

在这里插入图片描述

RabbitMQ下载地址(以RedHat为例)

下载的rpm包上传服务器后:

rpm -Uvh rabbitmq-server-3.13.2-1.el8.noarch.rpm
yum install -y rabbitmq-server

更改默认日志和数据存储路径(可选)

默认日志和数据存在系统盘,如果要改成数据盘,以存储在/data/rabbitmq为例:

mkdir /data/rabbitmq
chown -R rabbitmq:rabbitmq /data/rabbitmq
vi /etc/rabbitmq/rabbitmq-env.conf

加入以下配置并保存:

RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/data/rabbitmq/log

启动Service,加入开机启动

systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server.service

创建rabbit管理页面和管理员

rabbitmq-plugins enable rabbitmq_management
rabbitmqctl add_user 你的用户名 你的密码
rabbitmqctl set_user_tags 你的用户名 administratorsystemctl restart rabbitmq-server.service

服务器端口放行15672,用于rabbitmq的管理界面,访问服务器地址:15672即可。

安装rabbitmq-c

注意rabbitmq-c与php-amqp的版本与php版本有关,另外还要注意你的php是nts还是ts版本,如果amqp下载错了,安装后是无法被加载的。这里以php 7.1为例,在amqp官网确定amqp的版本是1.9.4,最后查看rabbitmq-c github文档确定rabbitmq-c版本为0.8.0。
在这里插入图片描述

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

安装后,新建/etc/ld.so.conf.d/rabbitmq-c.conf,添加如下配置(按照网上文档,默认安装在/usr/local/rabbitmq-c-0.8.0):

/usr/local/rabbitmq-c-0.8.0/lib

保存后,刷新配置:

ldconfig

安装php-amqp

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

php.ini增加扩展配置(按照你的实际安装路径改),保存后重启你的php:

extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/amqp.so

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从System Prompt来看Claude3、Kimi和ChatGLM4之间的差距

大家好,我是herosunly。985院校硕士毕业,现担任算法t研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算…

虚函数的性能消耗到底在哪?

虚函数的性能消耗 聊到虚函数的性能开销,大家的第一反应肯定是间接调用上,何为间接调用? 当调用一个虚函数时,实际执行的函数版本是在运行时通过虚函数表(virtualtable)查找确定的。这个查找过程是一个间接…

【介绍下运维开发】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

6.10 Libbpf-bootstrap(一,简介)

写在前面 在看完前面的介绍,是不是感觉看了也就看了。但是,如果想要像BCC那样使用libbpf编写BPF程序,该怎么开始呢? 那么这就需要libbpf-bootstrap了。 libbpf-bootstrap是官方推荐的一个范式,就像我们写PPT的模版。简单来说可以简化我们的BPF开发流程,它可以帮助我们…

每日复盘-20240529

20240529 六日涨幅最大: ------1--------300956--------- 英力股份 五日涨幅最大: ------1--------301361--------- 众智科技 四日涨幅最大: ------1--------301361--------- 众智科技 三日涨幅最大: ------1--------300637--------- 扬帆新材 二日涨幅最大: ------1--------30…

el-pagination在删除非第一页的最后一条数据遇到的问题

文章目录 前言一、问题展示二、解决方案三、源码解析1、elementui2、elementplus 总结 前言 这个问题是element-ui中的问题,可以从源码中看出来,虽然页码更新了,active也是对的,但是未调用current-change的方法,这里就…

爬虫案例(读书网)

一.我们还是使用简单的bs4库和lxml,使用xpath: 导入下面的库: import requests from bs4 import BeautifulSoup from lxml import etree 我们可以看见它的div和每个书的div框架,这样会观察会快速提高我们的简单爬取能力。 二.实…

探索AIGC的前沿:人工智能生成内容的现状与未来

探索AIGC的前沿:人工智能生成内容的现状与未来 近年来,人工智能生成内容(AI-generated content, AIGC)技术的发展突飞猛进,已经在多个领域展现出了其巨大的潜力。从文本到图像,再到音频和视频,…

Element-UI 入门指南:从安装到自定义主题的详细教程

Element-UI 是一个基于 Vue.js 的前端组件库,它提供了丰富的 UI 组件,可以帮助开发者快速构建高质量的用户界面。以下是使用 Element-UI 的快速入门指南: 安装 Element-UI Element-UI 是一个基于 Vue.js 的组件库,它提供了丰富的…

原神抽卡点名程序教程(直接下载用)

今天我要给大家分享一个在抖音上特别火的视频——原神抽卡点名程序教程。 (要源码的私信扣31) 废话不多说,直接上效果图 : 步骤1: 步骤2:(写名单,前面加数字代表星级,用…

JAVA类与方法·易错题分析

分析一下作业中关于类与方法写错或者易错的题。 N o . 1 No.1 No.1 下面程序的执行结果是______。 public class Test7 {public static void main(String[] args){new B().display();} } class A{public void draw() {System.out.print("Draw A.");}public void di…

python -【五】数据容器

数据容器 一、列表 列表的循环 name_list [张三, 李四, 王五] print(f类型是&#xff1a;{type(name_list)})# while 遍历列表 count 0 while count < len(name_list):print(fwhile 下标为[{count}] 的内容是[{name_list[count]}])count 1# for 循环 for name in name…

用户接入和认证技术

一、用户接入和认证配置 称为网络接入控制&#xff0c;通过对接入网络的客NAC (Network Admission Control)户端和用户的认证保证网络的安全&#xff0c;是一种“端到端”的安全技术。包括802.1x认证、MAC认证与Portal认证。 二、三种认证方式简介 1、Portal认证 Portal认证通…

Hadoop3:MapReduce之简介、WordCount案例源码阅读、简单功能开发

一、概念 MapReduce是一个 分布式运算程序 的编程框架&#xff0c;是用户开发“基于 Hadoop的数据分析 应用”的核心框架。 MapReduce核心功能是将 用户编写的业务逻辑代码 和 自带默认组件 整合成一个完整的 分布式运算程序 &#xff0c;并发运行在一个 Hadoop集群上。 1、M…

2.1色彩空间

色彩发送器 色彩认知 光源是出生点&#xff0c;光源发射出光线&#xff0c;光线通过直射反射折射等路径最终进入人眼。 但人眼接收到光线后&#xff0c;人眼的细胞产生了一系列化学反应。 由此把产生的信号传入大脑&#xff0c;最终大脑对颜色产生了认知感知。 光的要素 光…

【数据结构】探索树中的奇妙世界

专栏介绍&#xff1a; 哈喽大家好&#xff0c;我是野生的编程萌新&#xff0c;首先感谢大家的观看。数据结构的学习者大多有这样的想法&#xff1a;数据结构很重要&#xff0c;一定要学好&#xff0c;但数据结构比较抽象&#xff0c;有些算法理解起来很困难&#xff0c;学的很累…

C#多线程同步lock、Mutex

C#使用多线程可以通过System.Threading命名空间下的Thread类来实现 lock和Mutex用于实现线程同步的机制&#xff1a; 上代码&#xff1a; class People{public People(int idd){id idd;}public int id;public int age;}class TestHelper{public TestHelper() { }List<Peo…

代码随想录二刷 Day05 | 242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和,454.四数相加II,383. 赎金信

题目与题解 参考资料&#xff1a;哈希表理论基础 Tips&#xff1a; 一般哈希表都是用来快速判断一个元素是否出现集合里哈希表生成原理&#xff1a;先通过哈希函数将变量映射为hashcode&#xff0c;如果二者hashcode相同&#xff0c;再通过哈希碰撞方法&#xff08;拉链法&…

四川汇聚荣聚荣科技有限公司是正规的吗?

在当今社会&#xff0c;随着科技的飞速发展&#xff0c;越来越多的科技公司如雨后春笋般涌现。然而&#xff0c;在这个信息爆炸的时代&#xff0c;如何判断一家公司是否正规成为了许多人关注的焦点。本文将围绕“四川汇聚荣聚荣科技有限公司是否正规”这一问题展开讨论&#xf…

CSS学习笔记:vw、vh实现移动端适配

移动端适配 移动端即手机端&#xff0c;也称M端 移动端适配&#xff1a;同一套移动端页面在不同屏幕尺寸的手机上可以实现宽度和高度的自适应&#xff0c;也就是页面中元素的宽度和高度可以根据屏幕尺寸的变化等比缩放 之前我在一篇博客中介绍了rem实现移动端适配&#xff0…