linux中安装mqtt服务(mosquitto)

linux中安装mqtt服务(mosquitto):

以centOS8为例子:

一、准备工作:

1、查看系统的版本

cat /etc/redhat-release

在这里插入图片描述
2、查看防火墙的状态:
可参考陆详细内容:https://blog.csdn.net/huo_wa/article/details/117247945
防火墙设置有两种选择,一种是关闭防火墙,一种是在防火墙中开辟端口。上面的路径中都有详细对的操作
3、配置dnf

vi /etc/dnf/dnf.conf

在最后一行加入:

fastestmirror=True

保存之后执行:

dnf clean all
dnf makecache

4、安装wget

dnf install wget -y

5、安装tar

dnf install tar -y

6、安装make

dnf install make -y

7、安装g++

dnf install gcc-c++ -y

8、安装openssl开发工具包

dnf install openssl-devel -y

注意:安装过的无需安装,如不知道有没有安装,在暂时不安装,接下来的操作会提示是否安装。
9、下载编译mqtt(mosquitto)

cd /usr/local 
wget https://mosquitto.org/files/source/mosquitto-1.6.10.tar.gz
tar -zxvf mosquitto-1.6.10.tar.gz
cd mosquitto-1.6.10
make
make install

10、配置文件

cd /etc/mosquitto/
mv mosquitto.conf.example  mosquitto.conf

11、启动

mosquitto -c /etc/mosquitto/mosquitto.conf

12、设置开机自启

vi /usr/lib/systemd/system/mosquittod.service

内容:

[Unit]
Description=Mosquitto 1.6.10 mqtt server
After=network.target

[Service]
Type=forking
User=mosquitto
Group=mosquitto

ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf  -d

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

# Place temp files in a secure directory, not /tmp
PrivateTmp=true

[Install]
WantedBy=multi-user.target

修改文件权限:

chmod 644 /usr/lib/systemd/system/mosquittod.service

使配置生效:

systemctl daemon-reload

设为开机启动:

systemctl enable mosquittod.service

测试(订阅test主题):

mosquitto_sub -t test

出现以下错误:

mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解决办法(创建软连接):

ln -s /usr/local/lib/libmosquitto.so.1  /usr/lib/libmosquitto.so.1
ldconfig

再次测试:

mosquitto_sub -t test

在这里插入图片描述
打开另一个终端,并发布test主题内容:

mosquitto_pub  -t test -m "hello"

在这里插入图片描述

如有不懂,请添加QQ群:920199935

おすすめ

転載: blog.csdn.net/huo_wa/article/details/117459287