安装PHP的mosquitto组件

前言

因为要接入物联网的数据接口,通过阿里云的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

你可能感兴趣的:(安装PHP的mosquitto组件)