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 你的用户名 administrator

systemctl 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
相关推荐
用户8307196840823 小时前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq
chlk1239 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑9 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件10 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
BingoGo12 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack12 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
深紫色的三北六号19 小时前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
初次攀爬者1 天前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
哈基咪怎么可能是AI1 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github