mosquitto的编译安装及开机自启

最近我司项目中引入了mosquitto这个轻量级的实现了消息推送协议 MQTT v3.1 的开源消息代理软件,由于此前一直使用RabbitMQ作为消息中间件,因此需要从零开始搭建mosquitto的环境。本文主要针对本次安装的步骤做以记录。

一、mosquitto安装步骤

  1. 我们使用的是mosquitto-1.4.8,先将其从官网下载后上传至服务器相关目录,这里假设我们上传到/opt/mqtt/mosquitto目录。
  2. 进入/opt/mqtt/mosquitto,执行命令tar-zxf mosquitto-1.4.8.tar.gz,解压安装包并进入解压目录。
  3. 执行命令vi config.mk,将其中的WITH_TLS和WITH_TLS_PSK修改为no,以关闭OpenSSL。
  4. 依次执行以下命令安装相关依赖。
yum install -y gcc-c++.x86_64
yum install -y c-ares-devel e2fsprogs-devel uuuid-devel libuuid-devel
  1. 执行命令make prefix=/opt/mqtt/mosquitto/mosquitto-1.4.8 && make install编译安装mosquitto。
  2. 编译安装完成后,会在/etc/mosquitto下生成相关的配置文件的样例,我们将该目录下的mosquitto.conf.example重命名为mosquitto.conf,并使用vi编辑器打开该文件,对如下内容进行修改:
# When run as root, drop privileges to this user and its primary
# group.
# Leave blank to stay as root, but this is not recommended.
# If run as a non-root user, this setting has no effect.
# Note that on Windows this has no effect and so mosquitto should
# be started by the user you wish it to run as.
# user mosquitto  将mosquitto用户注释
user root        #新增root用户为mosquitto服务的用户
  1. 执行命令systemctl stop firewalld,关闭防火墙。
  2. 执行命令mosquitto -d -c /etc/mosquitto/mosquitto.conf,启动服务。
  3. 简单验证: 这里使用MQTT.fx工具来进行连接验证。 新建连接 发布消息 订阅消息

二、 设置开机自启

在/etc/rc.d/init.d目录下创建自启动脚本mosquitto_auto_start.sh,内容如下:

#!/bin/bash
#chkconfig: 2345 80 90
#description:auto_run
  
/usr/local/sbin/mosquitto -d -c /etc/mosquitto/mosquitto.conf

而后依次执行以下命令:

chmod +x /etc/rc.d/init.d/mosquitto_auto_start.sh
chkconfig --add /etc/rc.d/init.d/mosquitto_auto_start.sh
chkconfig /etc/rc.d/init.d/mosquitto_auto_start.sh on

重启后,可根据进程以及工具调用查询mosquitto服务是否正常启动。

经验分享 程序员 微信小程序 职场和发展