CentOS7 编译 mosquitto-2.0.18

本文详细指导了在Linux系统上下载并编译mosquitto、cJSON、libwebsockets库,配置cmake和openssl,以及设置mosquitto服务的过程,包括用户权限、密码管理、SSL配置和自动启动等内容。
摘要由CSDN通过智能技术生成

1 下载源码

1) mosquitto-2.0.18.tar.gz 

地址 https://github.com/eclipse/mosquitto

2) cJSON-1.7.17.tar.gz

地址 https://github.com/DaveGamble/cJSON

3) libwebsockets-3.2.2.tar.gz 

地址 https://github.com/warmcat/libwebsockets

4)openssl

https://openssl.org

或 https://github.com/openssl/openssl

PS:由于安装其他功能已经装了,没有编译openssl,用现有的。

2.下载并设置cmake

1)下载

从以下地址下载 cmake-3.28.1-linux-x86_64.tar.gz

Download CMakeicon-default.png?t=N7T8https://cmake.org/download/

解压到/home/xx/cmake-3

2) 设置环境变量

export PATH=/home/li/cmake-3/bin:$PATH

3.编译 cJSON

tar jxf /tmp/cJSON-1.7.17.tar.gz
cd cJSON-1.7.17/
mkdir build
cd build/
cmake ..
make
sudo make install

4.编译libwebsockets

cd ../../libwebsockets-3.2.2/
mkdir build
cd build/
cmake -DLWS_WITH_EXTERNAL_POLL=ON ..
make
sudo make install

5.编译mosquitto

cd ../../mosquitto-2.0.18/
mkdir build
cd build/
sudo cp /usr/local/lib/cmake/libwebsockets/LibwebsocketsConfig.cmake /usr/local/lib/cmake/libwebsockets/libwebsocketsConfig.cmake
cmake -DWITH_WEBSOCKETS=ON -DDOCUMENTATION=OFF -DCMAKE_PREFIX_PATH=/usr/local/lib/cmake ..
make
sudo make instal

6.配置mosquitto

1)添加用户

sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto

2)生成密码文件

mosquitto_passwd -c /etc/mosquitto/pwfile.conf xx

3)日志及数据库路径

sudo mkdir /var/log/mosquitto
sudo chmod -R 777 /var/log/mosquitto
sudo chown mosquitto:mosquitto /var/log/mosquitto
sudo mkdir /data/mosquitto
sudo chown mosquitto:mosquitto /data/mosquitto
sudo chmod 777 /data/mosquitto

4) ssl文件

将ssl文件放到 etc/mosquitto/certs

5) 配置文件mosquitto.conf

# =================================================================
# Listeners
# =================================================================

# =================================================================
# Listeners
# =================================================================

# listener port-number [ip address/host name/unix socket path]
#listener
listener 9083

# Choose the protocol to use when listening.

protocol websockets

# Path to the PEM encoded server certificate.
#certfile
capath /etc/mosquitto/certs
cafile /etc/mosquitto/certs/root.crt
certfile /etc/mosquitto/certs/xx.pem
keyfile /etc/mosquitto/certs/xx.key

# =================================================================
# Persistence
# =================================================================

autosave_interval 1800

# Save persistent message data to disk (true/false).

persistence true

persistence_file mosquitto.db

persistence_location /data/mosquitto

# =================================================================
# Logging
# =================================================================

log_dest file /var/log/mosquitto/mosquitto.log

# -----------------------------------------------------------------
# Default authentication and topic access control
# -----------------------------------------------------------------
 

password_file /etc/mosquitto/pwfile.conf

7.运行

1)mosquitto

mosquitto -c /etc/mosquitto/mosquitto.conf

2) mosquitto_pub

运行会报错 :

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

创建以下软链接即可:

sudo ln -s /usr/local/lib64/libcjson.so.1 /usr/lib64/libcjson.so.1
sudo ln -s /usr/local/lib64/libmosquitto.so.1 /usr/lib64/libmosquitto.so.1

3)安装自启动

sudo cp -rp mosquitto-2.0.18/service/systemd/mosquitto.service.simple /etc/systemd/system/mosquitto.service
#修改mosquitto路径
sudo vi /etc/systemd/system/mosquitto.service
sudo systemctl daemon-reload
sudo systemctl enable mosquitto.service
sudo systemctl start mosquitto.service
sudo systemctl status mosquitto.service

  • 26
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值