MQTT Centos 7インストール
6601 ワード
MQTT Centos 7インストール
1枚目の取り付け
リソースパッケージのダウンロード
MQTT運転依存環境のインストール
次の3つはインストールする必要があります.そうしないと、make時に通過できません.MQTTをインストールする前にtxtファイルは公式の説明を読んでください.
configを修正する.mkプロファイル
コンパイルインストール
以上で#makeを実行した場合、エラーを報告しなければ、以下の説明をスキップします.エラーが発生した場合:mosquitto.c:49:29: fatal error: libwebsockets.h: No such file or directory
では、libwebsocketsがインストールされていないことを説明します.#yum remove libwebsocketsをアンインストールし、新しいソースパッケージをダウンロードしてインストールします.手順は以下のとおりです.
ソースパッケージリンク:https://github.com/warmcat/libwebsockets私たちはzipダウンロードリンクをコピーするバージョンを選択しました.ここで私が選んだのは1.5バージョンです.
以上ibwebsocketsのインストールを実行した後、MQTT#cd/usr/local/mosquitto-1.6.7#make#make installのインストールを再コンパイルする3つのコマンドが前にリストされています.
テスト
MQTTエラー解決の起動エラーメッセージ:mosquitto:error while loading shared libraries:libwebsockets.so.5: cannot open shared object file: No such file or directory
解決方法:whereisを使用してlibwebsocketsを検索できます.so.5の経路は、/usr/libの下にソフトリンクを確立すればよい.エラーメッセージmosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
mosquitto再起動
ユーザー名パスワードの設定
開くconfファイル、allow_を見つけますanonymousノード、このノードの役割は、匿名のユーザーログインを開くかどうか、デフォルトはtrueです.この構成を開いて(前の#番号を削除して)値をtrueに変更します.
password_が見つかりましたfileノード、このノードは、サーバが構成するユーザーがどこに保存されるかを示すノードです.この構成を開き、pwfileを指定します.exampleファイルパス
ユーザー名とパスワードを作成し、コマンドウィンドウを開いて次のコマンドを入力します.
権限の設定
開くconfファイル、password_を見つけますfileノード
認証構成pwfile、なければファイルを作成
第2の方法
EPELライブラリの追加
EPELインストール結果の表示
Mosquittoのインストール
Mosquittoのテスト
ブートブートブートmosquitto
mosquitto_pubコマンドパラメータ説明-d印刷debug情報 -f指定ファイルの内容を送信メッセージの内容 とする.-h接続するドメイン名を指定するデフォルトはlocalhost です.-iどのクライアントIdのユーザにメッセージを送信かを指定する .-IどのclientId接頭辞のユーザにメッセージ を送信かを指定する.-mメッセージ内容 -nは、nullメッセージ を送信する-p接続ポート番号 -q指定QoSの値(0,1,2) -t指定topic -u指定brokerアクセスユーザ -P brokerアクセスパスワード を指定-V指定MQTTプロトコルバージョン –will-payloadは、クライアントがbrokerと予期せぬ接続を切断したときに発行されるメッセージを指定します.このパラメータは、-will-topicとともに を使用する必要があります.–will-qos WillのQoS値.このパラメータは、-will-topicとともに を使用する必要があります.–will-retainは、Willメッセージがretainメッセージとして扱われることを指定する(すなわち、メッセージがブロードキャストされた後、メッセージが保持される).このパラメータは、-will-topicとともに を使用する必要があります.–will-topicユーザーWillメッセージを送信するtopic mosquitto_subコマンドパラメータ説明-cは、「clean session」を無効な状態に設定し、サブスクリプション状態を維持し続け、接続が失われても、再接続すれば受信可能な切断期間中に送信されるメッセージを保持する. -d印刷debug情報 -h接続するドメイン名を指定するデフォルトはlocalhost です.-i指定clientId -I指定clientIdプレフィックス -k keepaliveは一定時間おきにPINGメッセージをbrokerに通知し、まだ接続状態にある.デフォルトは60秒です. -q QoSを受信したい理由を指定するメッセージのデフォルトQoSは0 である.-R古いメッセージを表示しない -t購読topic -v印刷メッセージ –will-payloadは、クライアントがbrokerと予期せぬ接続を切断したときに発行されるメッセージを指定します.このパラメータは、-will-topicとともに を使用する必要があります.–will-qos WillのQoS値.このパラメータは、-will-topicとともに を使用する必要があります.–will-retainは、Willメッセージがretainメッセージとして扱われることを指定する(すなわち、メッセージがブロードキャストされた後、メッセージが保持される).このパラメータは、-will-topicとともに を使用する必要があります.–will-topicユーザーWillメッセージを送信するtopic
1枚目の取り付け
リソースパッケージのダウンロード
# wget https://mosquitto.org/files/source/mosquitto-1.6.7.tar.gz
# tar zxvf mosquitto-1.6.7.tar.gz
# mv mosquitto-1.6.7 /usr/local/mosquitto-1.6.7
MQTT運転依存環境のインストール
次の3つはインストールする必要があります.そうしないと、make時に通過できません.MQTTをインストールする前にtxtファイルは公式の説明を読んでください.
# yum -y install openssl-devel
# yum -y install gcc-c++
# yum -y install cmake
# yum install -y c-ares-devel
# yum install -y uuid-devel
# yum install -y libuuid-devel
# yum install -y libwebsockets //yum ,
configを修正する.mkプロファイル
# cd /usr/local/mosquitto-1.6.7
# vim config.mk
yes, # , 。
WITH_SRV:=yes
WITH_WEBSOCKETS:=yes
WITH_ADNS:=yes
コンパイルインストール
# make
# make install
以上で#makeを実行した場合、エラーを報告しなければ、以下の説明をスキップします.エラーが発生した場合:mosquitto.c:49:29: fatal error: libwebsockets.h: No such file or directory
では、libwebsocketsがインストールされていないことを説明します.#yum remove libwebsocketsをアンインストールし、新しいソースパッケージをダウンロードしてインストールします.手順は以下のとおりです.
ソースパッケージリンク:https://github.com/warmcat/libwebsockets私たちはzipダウンロードリンクをコピーするバージョンを選択しました.ここで私が選んだのは1.5バージョンです.
# wget https://github.com/warmcat/libwebsockets/archive/v1.5-stable.zip
# yum -y install unzip
# unzip v1.5-stable.zip
# mkdir -p /usr/local/websocket
# mv libwebsockets-1.5-stable /usr/local/websocket
# cd /usr/local/websocke/libwebsockets-1.5-stable
# cmake .
# make
# make install
以上ibwebsocketsのインストールを実行した後、MQTT#cd/usr/local/mosquitto-1.6.7#make#make installのインストールを再コンパイルする3つのコマンドが前にリストされています.
テスト
:
groupadd mosquitto
useradd -g mosquitto mosquitto
:
mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
:
mosquitto -c /etc/mosquitto/mosquitto.conf -d
1883
, ( ) :
mosquitto_sub -t hello
( ) :
mosquitto_pub -t hello -h localhost -m "hello world"
MQTTエラー解決の起動
解決方法:whereisを使用してlibwebsocketsを検索できます.so.5の経路は、/usr/libの下にソフトリンクを確立すればよい.
# ln -s /usr/local/lib/libwebsockets.so.5 /usr/lib/libwebsockets.so.5
# ldconfig
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
ldconfig
mosquitto再起動
1、 mosquitto
ps -aux | grep mosquitto
2、
kill -9 18248
3. mosquitto
mosquitto -c /etc/mosquitto/mosquitto.conf -d
ユーザー名パスワードの設定
開くconfファイル、allow_を見つけますanonymousノード、このノードの役割は、匿名のユーザーログインを開くかどうか、デフォルトはtrueです.この構成を開いて(前の#番号を削除して)値をtrueに変更します.
:#allow_anonymous
:allow_anonymous false
password_が見つかりましたfileノード、このノードは、サーバが構成するユーザーがどこに保存されるかを示すノードです.この構成を開き、pwfileを指定します.exampleファイルパス
:#password_file
:password_file /etc/mosquitto/pwfile
ユーザー名とパスワードを作成し、コマンドウィンドウを開いて次のコマンドを入力します.
mosquitto_passwd -c /etc/mosquitto/pwfile admin
、 。 : -c /etc/mosquitto/pwfile pwfile 、admin
権限の設定
開くconfファイル、password_を見つけますfileノード
:#acl_file
:acl_file /etc/mosquitto/aclfile
認証構成pwfile、なければファイルを作成
# This affects access control for clients with no username.
topic read $SYS/#
# This only affects clients with username "roger".
user roger
topic foo/bar
# This affects all clients.
#pattern write $SYS/broker/connection/%c/state
#admin hello topic
user admin
topic hello/#
#bing
user bing
topic read hello/#
mosquitto_sub -t hello -h 127.0.0.1 -u admin -P admin@123
mosquitto_pub -t hello -h localhost -m "hello world" -u admin -P admin@123
第2の方法
EPELライブラリの追加
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
EPELインストール結果の表示
yum repolist all | grep enabled
Mosquittoのインストール
mosquitto :yum list all | grep mosquitto
mosquitto : yum info mosquitto
mosquitto : yum install mosquitto
:yum list installed | grep mosquitto
Mosquittoのテスト
mosquitto :mosquitto
ssh ; 》 :mosquitto_sub -t test
ssh ; 》 :mosquitto_pub -t test -h localhost -m "hello, world"
:hello, world
ブートブートブートmosquitto
mosquitto :find / -iname mosquitto* | grep service
mosquitto :systemctl enable mosquitto.service
mosquitto :systemctl start mosquitto.service
mosquitto :systemctl status mosquitto.service
:ps -aux | grep mosquitto
CentOS:reboot, mosquitto :systemctl list-units | grep mosquitto
mosquitto_pubコマンドパラメータ説明