前言
因为要接入物联网的数据接口,通过阿里云的mtqq协议进行数据推送
当前我使用PHP来接入开发,因此需要安装PHP的mosquitto组件,下面是安装流程
流程
1. Mosquitto下载地址
https://mosquitto.org/download/
2. 安装方式
2.1 选择源码方式安装
PHP版本是7.4
经过几天的安装失败研究,发现使用mosquitto1.6.9版本可以直接安装
源码地址:https://mosquitto.org/files/source/mosquitto-1.6.9.tar.gz
如果是PHP7.2, 可以尝试https://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz
下载后,执行下面命令
tar -zxvf mosquitto-1.6.9.tar.gz
cd mosquitto-1.6.9
make WITH_TLS=no WITH_SRV=no #后面两个选项可以没有
make install prefix=/data/server/mqtt
ln -s /usr/local/lib/libmosquitto.so /usr/lib/libmosquitto.so
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
如果遇到cjson.h不存在
下载安装:https://github.com/arnoldlu/cJSON
cd cJSON && mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig
ln -s /usr/local/lib/libcjson.so.1.3.2 /usr/lib/libcjson.so.1.3.2
ln -s /usr/local/lib/libcjson.so.1 /usr/lib/libcjson.so.1
ln -s /usr/local/lib/libcjson.so /usr/lib/libcjson.so
ln -s /usr/local/include/cjson /usr/include/cjson
Cmake没有安装
wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz
tar -zxvf cmake-3.13.2.tar.gz
cd cmake-3.13.2
./bootstrap && make && make install
openssl/opensslv.h: No such file or directory
centos: yum install openssl-devel
ubuntu: apt-get install lib-ssl-dev
***如果还是有各种奇怪的问题
请通过增加WITH_TSL=no, WITH_SRV=no, WITH_CJSON=no或者不同的mosquitto版本来尝试
2.2选择snap安装:
snap install mosquitto
如果snap没有安装,请参照下面的流程进行操作【安装snap后需要重启服务器,不然会报错】
2.2.1centos7安装过程:
sudo yum install epel-release
sudo yum install yum-plugin-copr
sudo yum copr enable ngompa/snapcore-el7
sudo yum -y install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
以上安装完成snap
2.2.2 centos8安装过程
sudo dnf -y install https://dl.Fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf -y upgrade
sudo dnf -y install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
3. 如果使用上面的snap安装完成mosquitto后
mosquitto的所有文件都在/var/lib/snapd/snap/mosquitto/下面
因为安装PHP的mosquitto组件需要加载libmosquitto包,所以做下面软链,应该就不会包lib包找不到的错
ln -s /var/lib/snapd/snap/mosquitto/663/usr/lib/libmosquitto.so /usr/lib/libmosquitto.so
ln -s /var/lib/snapd/snap/mosquitto/663/usr/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
如果使用源码安装:
ln -s /usr/local/lib/libmosquitto.so /usr/lib/libmosquitto.so
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
4. 下载PHP的Mosquitto安装包
下载地址:https://github.com/mgdm/Mosquitto-PHP
下载后,解压进入对应目录,执行下面命令
phpize
./configure
make
make install
然后在php.ini里面添加extension=mosquitto.so
5. PHP版本的mosquitto使用手册
https://mosquitto-php.readthedocs.io/en/latest/overview.html
6. mosquitto服务的使用方法
https://github.com/eclipse/mosquitto
7. mosquitto服务使用
接下来我们需要稍微配置一下。
第一步:添加启动用户
groupadd mosquitto
useradd -g mosquitto mosquitto -s /sbin/nologin
第二步:复制配置文件
cd /etc/mosquitto
cp mosquitto.conf.example mosquitto.conf
第三步: 启动代理服务
cd /data/server/mqtt/sbin
./mosquitto -c /etc/mosquitto/mosquitto.conf -d -v