作者:猪的快乐旅途_278 | 来源:互联网 | 2023-06-27 11:29
目录IntroductionChapter1下载Chapter2解压Chapter3安装MosquittoChapter4安装时问题的解决2022-9-24更新Part1GCCPa
目录
- Introduction
- Chapter 1 下载
- Chapter 2 解压
- Chapter 3 安装 Mosquitto
- Chapter 4 安装时问题的解决 2022-9-24 更新
- Part 1 GCC
- Part 2 Openssl/ssl.h
- Part 3 ares.h
- Part 4 uuid/uuid.h
- Part 5 无法创建普通文件'/usr/local/lib/libmosquitto.so.1': 权限不够
- Part 6 如果依然报错
- Chapter 5 添加启动用户
- Chapter 6 启动
- Chapter 7 总结
- Chapter 8 参考资料
- Supplementary
Introduction
这篇博客写于 2021-7-8
,当时因项目需求急需一个带有 MQTT 协议的云服务平台,即使有 阿里云 等众多包含有物联网云服务的厂商,鉴于时间紧迫,无法保证在短时间内公网使用的审批手续能下来,而手边有一台已通过审批、备案的 Ubuntu
系统的云服务器,故尝试自己搭建 MQTT 云服务平台,作备份方案。当时测试的系统是 Ubuntu 18.04 LTS
,在完成测试与博客编写之后,物联网平台的公网审批通过,故没有进行深一步测试。
今 2022-9-24
又因项目需求,需要使用 MQTT
协议进行部分数据的传输,因而参照此文档进行安装,本次安装的系统版本为 Ubuntu 20.04 LTS
,安装时发现诸多此前未见的问题,故对本文档进行补充。补充之余,对文档之行文格式、用语等内容稍作修饰。
Chapter 1 下载
虽在 Ubuntu
系统下可以通过 apt-get
来非常便捷地安装 mosquitto
,但是并不推荐,因为这样子安装 mosquitto
对于配置文件的修改非常的复杂。所以并不推荐。
最好是在mosquitto的官方网站来下载 tar.gz
安装包,我是用的是 1.4.15
版本的,使用如下命令直接下载
wget http://mosquitto.org/files/source/mosquitto-1.4.15.tar.gz
Chapter 2 解压
tar -xvf mosquitto-1.4.15.tar.gz
Chapter 3 安装 Mosquitto
cd mosquitto-1.4.15
sudo make
sudo make install
注意这里必须加上 sudo
,不然会出现权限不够的情况
Chapter 4 安装时问题的解决 2022-9-24 更新
Part 1 GCC
这里需要注意,在编译的时候会出现以下的问题
如果出现类似下图与 GCC
相关的错误
可能是因为没有提供 C/C++
的编译环境,因此需要手动进行安装。
我们需要输入一下命令
sudo apt-get install build-essential
Part 2 Openssl/ssl.h
提示编译找不到 openssl/ssl.h
输入以下命令解决
sudo apt-get install libssl-dev
Part 3 ares.h
提示:缺少 ares.h
输入以下命令解决
sudo apt-get install libc-ares-dev
Part 4 uuid/uuid.h
如果出现这样的问题
说明缺少库文件,输入下面的指令解决问题
sudo apt-get install uuid-dev
Part 5 无法创建普通文件'/usr/local/lib/libmosquitto.so.1': 权限不够
无法创建普通文件 '/usr/local/lib/libmosquitto.so.1':
权限不够
回到编译后的文件夹里,进入到 lib
文件夹,执行如下指令:
sudo cp libmosquitto.so.1 /usr/local/lib
然后执行
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
再执行
sudo ldconfig
Part 6 如果依然报错
打开 config.mk
文件。
把 WITH_SRV:=yes
改成 WITH_SRV:=no
就可以编译了
Chapter 5 添加启动用户
sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto -s /sbin/nologin
复制配置文件
cd /etc/mosquitto
sudo cp mosquitto.conf.example mosquitto.conf
Chapter 6 启动
运行如下的代码开启服务器
mosquitto -c /etc/mosquitto/mosquitto.conf
再新建一个Terminal,使用netstat -tunlp|grep 1883
来检查端口是否被监听
使用 mosquitto_sub -t 'firstmqtt'
请求一个订阅
再在本机新建一个Terminal
,用mosquitto_pub -t 'firstmqtt' -m 'Hello World'
发布一个订阅
效果如下:左下角的是订阅的,右上角的是发布的,发布的信息是Hello World
,左下角则显示了Hello World
。
我可以通过外部设备向服务器发送数据,用如下格式
mosquitto_pub -h 192.168.31.177 -p 1883 -t firstmqtt -m 'you are so great'
图片展示了我向一台内网 IP 地址为 192.168.31.177
的服务器发送了一条数据。左下角是我通过 SSH
远程连接的服务器的终端,则显示了这条数据。
Chapter 7 总结
到此为止,MQTT 服务器搭建的第一阶段就完成了,上面的测试也证明了该 Broker
是能够正常运行的。
Chapter 8 参考资料
http://mosquitto.org
https://blog.csdn.net/wteruiycbqqvwt/article/details/90233955?spm=1001.2014.3001.5506
https://blog.csdn.net/houjixin/article/details/46711547
https://blog.csdn.net/weixin_30443731/article/details/95701086
https://blog.csdn.net/weixin_30443731/article/details/95701086
https://blog.csdn.net/fh15138451783/article/details/53160173
https://blog.csdn.net/klarclm/article/details/8550931
https://blog.csdn.net/haifengid/article/details/51801527
Supplementary
2021-07-08
创建文档;
2022-09-24
添加 Mosquitto 安装时遇到的问题及解决问题,修改行文格式及用语等;