我的linux版本为ubuntu 5.4.0-148-generic (buildd@lcy02-amd64-056)。如果你的不是ubuntu的话,在后续的一些命令使用上可能有稍微的区别。
一、安装软件
输入以下命令挨个安装。如果你的环境里已经有了这些工具的话,就不需要再安装。
apt-get install gcc
apt-get install c++
apt-get install cmake
apt-get install openssl
apt-get install libssl-dev
随便在某个路径(不建议在根目录)下新建一个文件夹software,我这里下载的是1.4.12的版本,如果你需要其他的版本,可以改下版本号。
mkdir software
cd software
wget http://mosquitto.org/files/source/mosquitto-1.4.12.tar.gz
tar -xzf mosquitto-1.4.12.tar.gz
安装其他软件
apt-get install uuid-dev
wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar xvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make
sudo make install
修改mosquitto的配置。
cd mosquitto-1.4.12
vi config.mk
将里面的WITH_SRV:=yes和WITH_UUID:=yes都用#号注释掉 。:wq保存退出
编译安装mosquitto
make
sudo make install
二、启动测试
创建用户
sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto
配置程序
mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
启动程序
mosquitto -c /etc/mosquitto/mosquitto.conf -d
程序默认端口是1883
扫描二维码关注公众号,回复:
16492845 查看本文章
如果想要看程序的端口,在启动程序时把-d去掉即可
mosquitto -c /etc/mosquitto/mosquitto.conf
或者可以用netstat工具查询端口
netstat -anp | grep mosquitto
验证MQTT订阅与发布
订阅窗口:
mosquitto_sub -t hello
可能在执行上面的命令时会报缺少libcares.so.2的动态库(缺少XXX.so,都可以使用下面的方法解决)。
用find命令查询libcare.so.2动态库路径在哪。
创建软连接
ln -s ./c-ares-1.10.0/.libs/libcares.so.2 libcares.so.2
添加环境变量
export LD_LIBRARY_PATH=./
再次进行订阅
mosquitto_sub -t hello
这就订阅成功过了。
按照我上面解决这个问题有一个缺点,就是每次重新打开一个窗口时,都需要重新配置环境变量才可以订阅与发布消息。第二种方法是在默认的环境变量路径下创建软连接,这样子就不需要每次都要重新配置环境变量了。
重新打开一个窗口,发布窗口:执行下面命令
mosquitto_pub -t hello -h localhost -m "hello world!"
程序截图
到这,MQTT服务器已经配置好了,希望可以帮助到你。