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