centos下mosquitto安装教程

依赖文件下载方式:

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的安装教程

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注