本文演示环境
- 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