依赖文件下载方式:
1. 安装前环境配置
# 安装openssl yum install openssl-devel # 安装cmake yum install cmake3 # 安装变异环境 yum install gcc-c++
如果cmake下载失败,可以通过下载附件,cmake-3.31.9-linux-x86_64.tar.gz
或者通过Cmake官网进行单独下载,
如果通过压缩包安装,需要通过export PATH=/home/li/cmake-3/bin:$PATH 将cmake添加到path路径中
2. 安装cJSON
tar jxf /tmp/cJSON-1.7.17.tar.gz cd cJSON-1.7.17/ mkdir build cd build/ cmake .. make sudo make install
3. 安装libwebsockets
cd ../../libwebsockets-3.2.2/ mkdir build cd build/ cmake -DLWS_WITH_EXTERNAL_POLL=ON .. make sudo make install
4. 安装mosquitto
cd ../../mosquitto-2.0.18/ mkdir build cd build/ # 该步骤可以省略,现在不包含这个文件,开启websockets不会报错 #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
5. 配置mosquitto
-
5.1 添加用户
sudo groupadd mosquitto sudo useradd -g mosquitto mosquitto
5.2 生成密码文件
mosquitto_passwd -c /etc/mosquitto/pwfile.conf jinmao
5.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
5.4 SSL文件
ssl文件 将ssl文件放到 etc/mosquitto/certs
ssl文件不是必须的,可以不用生成ssl的文件
5.5 配置mosquitto.conf
# ================================================================= # Listeners # ================================================================= # listener port-number [ip address/host name/unix socket path] #listener # 该配置主要配置的是监听端口号 listener 9083 # Choose the protocol to use when listening. # 默认为mqtt, 如果需要通过websocket, 可以设置为: protocol websockets protocol mqtt # 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 # ----------------------------------------------------------------- # 密码文件,可以通过mosquitto_passwd命令进行生成 password_file /etc/mosquitto/pwfile.conf
在配置密码文件的时候,可能会存在读取密码文件失败的情况,可以通过日志的方式查看:
cat /var/log/mosquitto/mosquitto.log然后将会看到日志文件中存在错误提示:

这是因为mosquitto没有对密码文件的权限,我们可以通过以下代码的方式解决:
chown mosquitto /usr/local/etc/mosquitto/pwfile.conf
6. 运行mosquitto
6.1 通过命令执行
mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf
6.2 通过服务的方式启动
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
修改后的mosquitto.service的文件内容如下:
[Unit] Description=Mosquitto MQTT Broker Documentation=man:mosquitto.conf(5) man:mosquitto(8) After=network.target Wants=network.target [Service] ExecStart=/usr/local/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto ExecStartPre=/bin/chown mosquitto:mosquitto /var/log/mosquitto ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto [Install] WantedBy=multi-user.target
主要是修改ExecStart后面的mosquitto的路径和mosquitto.conf的路径,如果其他配置有变动,则对应修改即可。
在启动完成之后,执行一下命令
systemctl status mosquitto
将会看到一下的界面,代表mosquitto启动成功:

以上就是mosquitto的安装教程