linux启动mqtt_MQTT linux centOS7 部署

本文详细介绍了如何在CentOS7上安装MQTT broker mosquitto,包括下载源码、安装依赖、编译配置、解决启动问题及测试连接。通过设置配置文件、创建软链接以及执行启动命令,成功部署并运行MQTT服务。
摘要由CSDN通过智能技术生成

系统版本centos7 X64

1.设置保存安装包路径

#cd /usr/local/src

2、开始下载源包

#wget https://mosquitto.org/files/source/mosquitto-1.6.7.tar.gz

3、解压

解压后得到mosquitto-1.6.7文件目录

#tar zxvf mosquitto-1.6.7.tar.gz

# mv mosquitto-1.6.7 /usr/local/mosquitto-1.6.7

4、安装MQTT运行依赖环境

1)以下三个必须安装,不然make时无法通过。 另外安装MQTT之前,我们也可以# cat compiling.txt文件阅读一下官方的说明。

#yum -y install openssl-devel#yum -y install gcc-c++#yum -y install cmake

2)以下可选扩展功能,不安装也不影响MQTT使用,只是缺少部分对应的功能

c-ares(用于DNS-SRV支持,默认禁用)c-ares官网:http://c-ares.haxx.se

tcp-wrappers(可选,包名libwrapp0 dev)

lib-uuid(支持为每个连接客户端生成唯一uuid)

libwebsockets(可选,默认禁用,版本1.3及以上,安装可支持websocket功能) 关于MQTT和Websocket的区别,有兴趣可以到这个链接了解一下。

下面安装扩展功能:

#yum install -y c-ares-devel#yum install -y uuid-devel #yum install -y libuuid-devel

# yum install -y libwebsockets

如果想了解安装的库在哪个位置,# rpm -ql libuuid 可知道哪些文件是通过yum指令安装来的,卸载包使用# yum remove  libuuid

需要查询是否已经安装RPM包可输入# rpm -q libuuid-devel

5、修改config.mk配置文件

#cd /usr/local/mosquitto-1.6.7#vim config.mk

修改以下为yes,如果前面有#就去掉,保存退出。

WITH_SRV:=yes

WITH_WEBSOCKETS:=yes

WITH_ADNS:=yes

6、编译安装

#make#make install

以上执行# make时,如果不报错的话,就跳过以下说明。如果报错: mosquitto.c:49:29: fatal error: libwebsockets.h: No such file or directory

那么说明libwebsockets 没有安装好,执行卸载# yum remove libwebsockets,下载新的源包的进行安装,步骤如下。

48304ba5e6f9fe08f3fa1abda7d326ab.png

#wget https://github.com/warmcat/libwebsockets/archive/v1.5-stable.zip #yum -y install unzip#unzip libwebsockets-1.5.zip #mkdir -p /usr/local/websocket#mv libwebsockets-1.5-stable /usr/local/websocket#cd /usr/local/websocke/libwebsockets-1.5-stable#cmake .#make#make install

48304ba5e6f9fe08f3fa1abda7d326ab.png

执行以上安装ibwebsockets后,重新编译安装MQTT   # cd /usr/local/mosquitto-1.6.7  # make    # make install  这3个命令前面已经列出过了。

7、启动

#mosquitto -c /etc/mosquitto/mosquitto.conf -d -p 1883 -v

8、启动MQTT报错解决

错误信息:mosquitto: error while loading shared libraries: libwebsockets.so.5: cannot open shared object file: No such file or directory

解决方法:使用whereis可以查找 libwebsockets.so.5的所在路径,建立一个软链接到/usr/lib 下即可。

#ln -s /usr/local/lib/libwebsockets.so.5 /usr/lib/libwebsockets.so.5#ldconfig

9、测试

打开2个shell 窗口,登录你的linux账号。

订阅:mosquitto_sub -t mtopic  -h 47.0.0.0 -u sun_read

发布:mosquitto_pub -t mtopic  -h 47.0.0.0 -m "我发消息给你了"

c20b6a55842166424f1ecd0e22315e5b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值