Linux CentOS7.2 安装消息队列RabbitMQ

本文详细记录了在Linux CentOS7.2环境下安装RabbitMQ的过程,包括安装erlang的步骤,解决编译RabbitMQ时遇到的xmlto命令缺失、erl command not found、erlc命令未找到、nc和unzip/zip命令缺失等问题,以及在启动RabbitMQ和PHP进程中遇到的挑战,如PID文件未写入和升级Zend Guard Loader。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:Linux CentOS7.2,服务器在装消息队列之前,装了WDCP管理面板和Workerman。

消息队列选择的是RabbitMQ,在网上搜索了一些教程,按照教程安装,但是在编译的时候还是遇到了各种各样的问题,现在整理如下:

一、首先参考网上的教程安装erlang&rabbitmq

1. 安装 erlang

1.1 准备工作,先安装依赖库

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel  
yum install ncurses-devel 

1.2 下载erlang源码 

wget http://www.erlang.org/download/otp_src_R16B02.tar.gz
cp otp_src_R16B02.tar.gz /usr/src/otp_src_R16B02.tar.gz
cd /usr/src
tar -xzvf otp_src_R16B02.tar.gz  
mv otp_src_R16B02 erlang_R16B

1.3 编译安装

cd erlang_R16B/ 
./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac  //不用java编译,故去掉java避免错误  
make && make install //编译后安装  

1.4 配置环境变量

vi /etc/profile  
ERL_HOME=/usr/local/erlang  
export PATH=$PATH:$ERL_HOME/bin  

2 安装rabbitmq

2.1 下载

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-3.1.5.tar.gz 
cp rabbitmq-server-3.1.5.tar.gz /usr/src
cd /usr/src
tar -xzvf rabbitmq-server-3.1.5.tar.gz

2.2 安装依赖库

yum -y install xmlto 

否则会编译不通过:

/bin/sh: line 1: xmlto: command not found

2.3 编译

cd rabbitmq-server-3.1.5 
make 
make install TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man //将rabbitmq编译到/opt/mq/rabbitmq目录 

2.4 安装web插件管理界面

cd /usr/local/rabbitmq/sbin 
mkdir /etc/rabbitmq/ 
./rabbitmq-plugins enable rabbitmq_management 

查看插件列表

./rabbitmq-plugins list

2.5 常用命令

启动rabbitmq

./rabbitmq-server -detached

在浏览器上输入http://127.0.0.1:15672/登录管理界面了

使用登录的名户名和密码默认都算guest

关闭rabbitmq

./rabbitmqctl stop

以上是参考:https://www.cnblogs.com/balaamwe/p/3678527.html

按照上面安装,在第一步安装 erlang时,没有什么问题。第二步安装rabbitmq时,在编译的时候开始遇到各种报错,总结如下:

1、需要安装xmlto命令

没有会报错:

/bin/sh: line 1: xmlto: command not found

使用yum命令去网络安装这个命令

yum install xmlto

2、make erl command not found

安装脚本会用到erl命令。erl就是erlange的简写。在安装脚本中,使用的命令是erl。默认是去/usr/bin/erl下寻找。由于,前面编译安装erlange的时候,使用--prefix参数,将erlang安装到了指定的目录了,而不是使用默认的路径。但是这会导致后面 rabbitMQ报错:找不到erl 执行文件。解决办法:

sudo ln -s /usr/local/erlang/bin/erl /usr/bin/erl

3、

/bin/sh: escript: command not found

  解决办法:

sudo  ln -s /usr/local/erlang/bin/escript  /usr/sbin/escript

4、make: erlc: Command not found

解决办法:

sudo  ln -s /usr/local/erlang/bin/erlc /usr/bin/erlc

以上参考:http://www.it610.com/article/3873857.htm

在编译过程中,除了以上问题外,我还遇到了以下问题

5. bash: nc: command not found

解决办法:在线安装

yum install -y nc

6. unzip/zip: Command Not Found 

解决办法:在线安装

yum install -y unzip zip

好了,到此为止,编译算是可以顺利进行了,编译完成后,该启动rabbitmq了。启动的时候又开始报以下错误了

rabbitmq 无法启动 Warning: PID file not written

查了好久,没找到具体解决办法,最后不管了,访问一下web面板看看,结果居然可以访问。好吧,这个问题不用理会,可以正常运行。现在rabbitmq算是安装完成了,下面是把开发的PHP代码放到服务器上,然后启动进程。

 

在启动PHP进程的时候,又开始报错了,说是我当前的zend版本太低,让我升级成Zend Guard Loader

升级zend

1、解压

wget http://downloads.zend.com/guard/7.0.0/zend-loader-php5.6-linux-x86_64_update1.tar.gz
tar -zxvf ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz
cd ZendGuardLoader/ #进入解压后的目录

2、开始安装

复制对应PHP版本文件夹下的 ZendGuardLoader.so 到PHP安装目录(我安装的是WDCP面板,php安装目录:/www/wdlinux/apache_php-5.5.38/etc)

 cp ZendGuardLoader.so  /www/wdlinux/apache_php-5.5.38/etc

编辑php配置文件.在 php.ini 文件末尾添加几行配置项.

zend_extension=/etc/httpd/modules/ZendGuardLoader.so
zend_loader.enable=1

zend_loader.disable_licensing=0 
zend_loader.obfuscation_level_support=3 
zend_loader.license_path= 

重启 Apache 或 Nginx

service httpd restart

好啦,到此,所有准备工作都做完了,可以启动php进程了

/www/wdlinux/apache_php-5.5.38/bin/php  /home/rabbitmq/consumer.php -start

 

Zend Guard下载网址:https://www.zend.com/en/products/loader/downloads#Linux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值