前言
因為要接入物聯網的數據接口腐泻,通過阿里云的mtqq協議進行數據推送
當前我使用PHP來接入開發(fā),因此需要安裝PHP的mosquitto組件,下面是安裝流程
流程
1. Mosquitto下載地址
????https://mosquitto.org/download/
2. 安裝方式
? ?2.1 選擇源碼方式安裝
? ? PHP版本是7.4
? ? 經過幾天的安裝失敗研究,發(fā)現使用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
? ? 下載后,執(zhí)行下面命令
? ? 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
? ? 下載后,解壓進入對應目錄动遭,執(zhí)行下面命令
? ??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