搭建 RabbitMQ PHP扩展

2022-04-08  本文已影响0人  街头民工

参考文档:RabbitMQ安装
参考文档:PHP扩展
PHP扩展

环境:centos7,PHP版本5.6

本文安装版本:
rabbitmq-server-3.9.14-1.el7.noarch.rpm
erlang-23.3.4.6-1.el7.x86_64.rpm

安装
  1. 安装依赖环境C++编译
    yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson
  2. 安装依赖socat,安装Erlang时需要这个
    yum install -y socat
  3. 安装Erlang
    yum install erlang-23.3.4.6-1.el7.x86_64.rpm
  4. 验证是否安装成功
[root@iz2zeai306v31rj6utu93kz /]# erl
Erlang/OTP 23 [erts-11.2.2.5] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Eshell V11.2.2.5  (abort with ^G)
1>

按2次Ctrl+C 退出
  1. 安装RabbitMQ
    yum install rabbitmq-server-3.9.14-1.el7.noarch.rpm
  2. 启动RabbitMQ
# 启动
service rabbitmq-server start

# 开机自动启动
chkconfig rabbitmq-server on

# 查看状态
service rabbitmq-server status

# 图片圈起来的位置显示绿色表示成功

# 如果启动失败,查看是否端口:5672被占用
 #检查端口被哪个进程占用
netstat -lnp|grep 5672
#查看进程的详细信息,加入进程号是762
ps 762 
#杀掉编号为762的进程(请根据实际情况输入)
kill -9 762 
image.png
  1. 其他命令:
# 重启:
service rabbitmq-server restart

# 停止:
service rabbitmq-server stop

# 列出角色:
rabbitmqctl list_users
  1. 防火墙开放端口, 如果开启了防火墙的需要开放一下 RabbitMQ的默认端口 5672、15672
# 开放端口(开放后需要要重启防火墙才生效)
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent

# 重启防火墙
firewall-cmd --reload

# 查看已开放的端口
firewall-cmd --list-ports
  1. 去服务器在安全组添加安全端口。


    image.png
配置RabbitMQ
  1. 启用网页版后台管理插件
    rabbitmq-plugins enable rabbitmq_management
  2. 新建一个用户名为admin,密码为123456的管理员
    (默认账号是guest,默认密码是guest,但这个默认账号只能本地连接,不能远程连接,所以要新建一个具有管理员权限的新用户名)
# 添加用户,后面两个参数分别是用户名和密码
rabbitmqctl add_user admin 123456
# 修改用户角色
rabbitmqctl set_user_tags admin administrator
# 添加权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
  1. 访问自己ip:http://ip:15672

    image.png
  2. 修改RabbitMQ默认端口
    RabbitMQ默认开启了几个端口:

4369:erlang发现口
5672:client端通信口,客户端要连接RabbitMQ服务时要用到
15672:后台管理界面ui端口,进入管理后台时访问url如:http://localhost:15672/
25672:server间内部通信口

有时候在生产环境下,我们出于安全等原因希望修改掉默认的端口号。

我们安装新版的RabbitMQ-3.8.x后,发现找不到它的配置文件,按常理,服务的端口开发都可以在配置文件里配置的。但是事实上RabbitMQ-3.8.x并没有生成配置文件,需要我们手动添加配置文件。

官方建议配置文件的位置:/etc/rabbitmq/rabbitmq.conf
我们现在要做的是把默认端口5672改成56720,并且允许远程访问。把web管理默认端口15672改成56271。只需如下配置:
vim /etc/rabbitmq/rabbitmq.conf

#AMQP 0-9-1 and 1.0 port,默认5672,允许远程访问
listeners.tcp.default = 0.0.0.0:56720
#web管理,默认15672
management.tcp.port = 56721
management.tcp.ip   = 0.0.0.0
  1. 保存,并重启RabbitMQ服务
    service rabbitmq-server restart
记得吧防火墙和服务器安全组内端口 配置权限:
 firewall-cmd --zone=public --add-port=56720/tcp --permanent

 firewall-cmd --zone=public --add-port=56721/tcp --permanent

 firewall-cmd --reload

使用netstat -lntp查看端口监听情况:
(如果找不到netstat命令,则先安装一下:yum -y install net-tools)

卸载
service rabbitmq-server stop
yum list rabbitmq-server
yum remove rabbitmq-server
yum list socat
yum remove socat
yum list erlang
yum remove erlang
rabbitmq常用命令
add_user        <UserName> <Password>
delete_user    <UserName>
change_password <UserName> <NewPassword>
list_users
add_vhost    <VHostPath>
delete_vhost <VHostPath>
list_vhostsset_permissions  [-p <VHostPath>] <UserName> <Regexp> <Regexp> <Regexp>
clear_permissions [-p <VHostPath>] <UserName>
list_permissions  [-p <VHostPath>]
list_user_permissions <UserName>
list_queues    [-p <VHostPath>] [<QueueInfoItem> ...]
list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]
list_bindings  [-p <VHostPath>]
list_connections [<ConnectionInfoItem> ...]
安装PHP扩展
cd /usr/local

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.0.tar.gz

cd rabbitmq-c-0.8.0

./configure --prefix=/usr/local/rabbitmq-c

make && make install
wget https://pecl.php.net/get/amqp-1.9.3.tgz

tar -zxvf amqp-1.9.3.tgz

cd amqp-1.9.3

phpize

./configure  --with-php-config=/usr/bin/php-config --with-librabbitmq-dir=/usr/local/rabbitmq-c
# 如果不知道config文件位置:使用 find / -name php-config 查找
make && make install
上一篇下一篇

猜你喜欢

热点阅读