Windows 7 64bitにMQTT(Mosquitto)を入れるメモ

MQTTはHerokuで動かすことが出来たのですがWindows 7 64bitのローカル上でMQTTをテストするべくMosquitto入れてみます。若干ハマリポイントもあったので忘れるとまずいのでメモしておきます。

An Open Source MQTT v3.1 Broker

Mosquittoをインストール

An Open Source MQTT v3.1 Brokerに行きます。

windows-7-64bit-install-mosquitto_1

ダウンロードボタンをクリック。

windows-7-64bit-install-mosquitto_2

ダウンロードページに遷移します。

windows-7-64bit-install-mosquitto_3

mosquitto-<バージョン>-install-win32.exe をダウンロード。

windows-7-64bit-install-mosquitto_4

先ほどのexeをダブルクリックしてインストール開始。

windows-7-64bit-install-mosquitto_5

なにやら、このパッケージを使うには追加で入れるものがあるとのこと。(のちほどReadmeを読む箇所で触れます)

windows-7-64bit-install-mosquitto_6

コンポーネントはデフォルトのままでOK。

windows-7-64bit-install-mosquitto_7

話が前後してしまうのですが、次でご紹介するMosquittoのReadmeにあるようにDLLを追加で入れる必要があるので

windows-7-64bit-install-mosquitto_8

C:\Program Files (x86)\mosquittoではなく C:\mosquitto にします。

windows-7-64bit-install-mosquitto_9

インストール中。

windows-7-64bit-install-mosquitto_10

インストール完了!

windows-7-64bit-install-mosquitto_11

MosquittoのReadmeを読んでみる

Mosquittoのフォルダを見てみます。

windows-7-64bit-install-mosquitto_12

Readme(readme-windows.txtのほう)があるので読んでみます。さきほどインストール画面でも触れていた重要な項目があります。

Dependencies - win32
--------------------

* OpenSSL
    Link: http://slproweb.com/products/Win32OpenSSL.html
    Install "Win32 OpenSSL <version>"
    Required DLLs: libeay32.dll ssleay32.dll
* pthreads
    Link: ftp://sourceware.org/pub/pthreads-win32
    Install "pthreads-w32-<version>-release.zip
    Required DLLs: pthreadVC2.dll

Please ensure that the required DLLs are on the system path, or are in the same directory as
the mosquitto executable.

どうやら、

  • OpenSSL(libeay32.dll・ssleay32.dll)追加のインストール
  • pthreads(pthreadVC2.dll)追加のインストール
  • 追加インストール先は、システムパスかMosquittoと同じフォルダに上記DLLを入れる必要がある

とのことです。早速やってみます。

OpenSSL

* OpenSSL
    Link: http://slproweb.com/products/Win32OpenSSL.html
    Install "Win32 OpenSSL <version>"
    Required DLLs: libeay32.dll ssleay32.dll

Shining Light Productions – Win32 OpenSSL

にアクセスします。

windows-7-64bit-install-mosquitto_13

Install "Win32 OpenSSL <version>"

のとおり、64bitでもWin32 OpenSSLのほうをインストールします。

windows-7-64bit-install-mosquitto_14

インストール後にフォルダを見に行きます。

windows-7-64bit-install-mosquitto_15

Required DLLs: libeay32.dll ssleay32.dll

のとおり、libeay32.dll ssleay32.dllをMosquittoフォルダに入れます。

pthreads

続いて、pthreadsからpthreadVC2.dllを探します。

* pthreads
    Link: ftp://sourceware.org/pub/pthreads-win32
    Install "pthreads-w32-<version>-release.zip
    Required DLLs: pthreadVC2.dll

にあるとおり、

ftp://sourceware.org/pub/pthreads-win32

にアクセスします。

windows-7-64bit-install-mosquitto_16

Install "pthreads-w32-<version>-release.zip

にあるとおり、最新版のzipをダウンロードします。

windows-7-64bit-install-mosquitto_17

解凍すると、

windows-7-64bit-install-mosquitto_18

と、 pthreadVC2.dllの位置がサッパリなので探します。

フォルダツリーを見る限り、

windows-7-64bit-install-mosquitto_19

Pre-built.2\dll\x64\pthreadVC2.dll

にあるようです。pthreadVC2.dllをMosquittoフォルダに入れます。

上記を済ませたMosquittoフォルダの状態

libeay32.dll・ssleay32.dll・pthreadVC2.dllを入れたMosquittoフォルダの状態です。

windows-7-64bit-install-mosquitto_20

コマンドプロンプトから叩いてみる

C:\mosquitto フォルダに行き、

mosquitto -v

を叩いてみると以下のように実行される。

windows-7-64bit-install-mosquitto_21

うまくいきました!

余談:「序数 ○○○ がダイナミック ライブラリ SSLEAY32.dll からみつかりませんでした。」と出てしまうエラーが出た場合の対処法

上記実行してみても「「序数 ○○○ がダイナミック ライブラリ SSLEAY32.dll からみつかりませんでした。」と出てしまうエラーが出てしまい絶望する時があります。

windows-7-64bit-install-mosquitto_22

原因

私の場合、これは以前OpenSSLを別途使うためにOpenSSL-Win64を
入れていて横着してWin64のSSLEAY32.dllを入れてしまったために起きていました。

3日程度ハマったのは秘密。

対処法

MosquittomのReadmeの通り、OpenSSL-Win32のものからちゃんと抽出して入れましょう。SSLEAY32.dllが同じ名前というのがかなりハマリポイントですね!

それでは、よきMosquitto Lifeを!