主要讲述的是eclipse-mosquitto的C语言版本的搭建,主要是为了从1.4.15版本升级到1.6.9,为解决一些webSocket和数据格式问题。
因为根据不同的业务和使用方式,需要不同的插件配合,本次在centos7搭建主要是需要WebSocket、SSL和mosquitto-auth-plug等一些插件组合
1、首先下载相关必要的插件,避免在下面安装中出现的问题
yum install gcc gcc-c++ -y yum install c-ares-devel -y yum install uuid-devel -y yum install libuuid-devel -y #mosquittos所需插件 yum install libxslt -y yum install docbook-style-xsl -y yum install crypto-utils -y #安装openssl相关插件 yum install openssl -y yum install openssl-devel -y #安装git yum install git -y #安装编译工具 yum install cmake -y yum install vim -y #安装mysql插件 yum install mariadb-devel -y
2、安装Websocket,主要是github上的源代码编译
git clone https://github.com/warmcat/libwebsockets.git cd libwebsockets mkdir build cd build cmake .. make make install
libwebsockets自身提供测试方法,在测试程序在编译目录build/bin中,libwebsockets-test-client 和 libwebsockets-test-server
git clone https://github.com/eclipse/mosquitto.git cd mosquitto #修改 支持websockets sed -i 's/WITH_WEBSOCKETS:=no/WITH_WEBSOCKETS:=yes/g' config.mk make make install adduser mosquitto #启动可能会报错找不到链接库 echo "/usr/local/lib64" >> /etc/ld.so.conf.d/liblocal.conf echo "/usr/local/lib" >> /etc/ld.so.conf.d/liblocal.conf ldconfig
不同的版本make编译的时候可能需要安装相关配置
例如:mosquitto的1.4.15安装的时候,有docbook相关的问题存在: xsltParseStylesheetProcess : document is not a stylesheet
解决办法:安装yum -y install docbook-style-xsl ,还会发现 在man/manpage.xsl文件中docbook的地址不对应,需要找到对应的docbook地址(find / -name docbook.xsl)替换
一般来说,安装完之后,mosquitto的配置文件目录是在/etc/mosquitto/下,可将mosquitto.conf.example 复制cp一份为mosquitto.conf 可以使用命令:mosquitto -c mosquitto.conf 测试是否启动成功
git clone https://github.com/jpmens/mosquitto-auth-plug.git cd mosquitto-auth-plug/ cp config.mk.in config.mk #修改config.mk 其他为no 默认BACKEND_MYSQL ?= yes #mosquitto源码位置 sed -i 's/MOSQUITTO_SRC =/MOSQUITTO_SRC = \/build\/mosquitto/g' config.mk #openssl位置,openssl version -a 查看 默认/etc/pki/tls sed -i 's/OPENSSLDIR = \/usr/OPENSSLDIR = \/etc\/pki\/tls/g' config.mk #修改mosquitto-auth-plug的一些错误 sed -i "s/const struct mosquitto /struct mosquitto /g" /build/mosquitto-auth-plug/auth-plug.c make mv auth-plug.so /etc/mosquitto
在最开始已经将openssl安装好了,直接自己配置好证书文件就好
openssl req -new -x509 -days 36500 -extensions v3_ca -keyout ca.key -out ca.crt
#产生一个私钥文件server.key openssl genrsa -out server.key 2048
#签发证书的请求文件“server.csr” openssl req -out server.csr -key server.key -new
#证书文件server.crtopenssl x509 -req -in server.csr -CA ca.crt-CAkey ca.key -CAcreateserial -out server.crt -days
36500
https://www.imdb.com/list/ls085808806/?ref_=otl_fhj
https://www.imdb.com/list/ls085808856/?ref_=otl_rdv
https://www.imdb.com/list/ls085808875/?ref_=otl_wh
https://www.imdb.com/list/ls085808810/?ref_=otl_mz
https://www.imdb.com/list/ls085808817/?ref_=otl_bu
https://www.imdb.com/list/ls085808830/?ref_=otl_vt
https://www.imdb.com/list/ls085808839/?ref_=otl_lca
https://www.imdb.com/list/ls085808825/?ref_=otl_ihf
https://www.imdb.com/list/ls085808840/?ref_=otl_cj
https://www.imdb.com/list/ls085808844/?ref_=otl_lg
https://www.imdb.com/list/ls085808885/?ref_=otl_oz
https://www.imdb.com/list/ls085808884/?ref_=otl_is
https://www.imdb.com/list/ls085850007/?ref_=otl_wvd
https://www.imdb.com/list/ls085850008/?ref_=otl_yvr
https://www.imdb.com/list/ls085850052/?ref_=otl_eye
https://www.imdb.com/list/ls085850073/?ref_=otl_yg
https://www.imdb.com/list/ls085850011/?ref_=otl_bub
https://www.imdb.com/list/ls085850036/?ref_=otl_wk
https://www.imdb.com/list/ls085850038/?ref_=otl_oaf
https://www.imdb.com/list/ls085850069/?ref_=otl_tbz
https://www.imdb.com/list/ls085850095/?ref_=otl_nu
https://www.imdb.com/list/ls085850094/?ref_=otl_ykj
https://www.imdb.com/list/ls085850087/?ref_=otl_gy
https://www.imdb.com/list/ls085850505/?ref_=otl_xwy
https://www.imdb.com/list/ls085850508/?ref_=otl_zai
https://www.imdb.com/list/ls085850558/?ref_=otl_ak
https://www.imdb.com/list/ls085850572/?ref_=otl_cpu
https://www.imdb.com/list/ls085850516/?ref_=otl_dqw
https://www.imdb.com/list/ls085850531/?ref_=otl_qhr
https://www.imdb.com/list/ls085850563/?ref_=otl_sq
https://www.imdb.com/list/ls085850528/?ref_=otl_ll
https://www.imdb.com/list/ls085850543/?ref_=otl_ajn
https://www.imdb.com/list/ls085850593/?ref_=otl_kr
https://www.imdb.com/list/ls085850580/?ref_=otl_pd
https://www.imdb.com/list/ls085850586/?ref_=otl_nsw
https://www.imdb.com/list/ls085850589/?ref_=otl_ex
https://www.imdb.com/list/ls085850701/?ref_=otl_lo
https://www.imdb.com/list/ls085850750/?ref_=otl_kad
https://www.imdb.com/list/ls085850759/?ref_=otl_rsm
https://www.imdb.com/list/ls085850771/?ref_=otl_bng
https://www.imdb.com/list/ls085850716/?ref_=otl_cof
https://www.imdb.com/list/ls085850718/?ref_=otl_nn
https://www.imdb.com/list/ls085850732/?ref_=otl_mq
https://www.imdb.com/list/ls085850763/?ref_=otl_aa
https://www.imdb.com/list/ls085850764/?ref_=otl_qhw
https://www.imdb.com/list/ls085850721/?ref_=otl_omo
https://www.imdb.com/list/ls085850729/?ref_=otl_uvi
https://www.imdb.com/list/ls085850743/?ref_=otl_ghj
https://www.imdb.com/list/ls085850794/?ref_=otl_eze
https://www.imdb.com/list/ls085850785/?ref_=otl_dy
https://www.imdb.com/list/ls085850107/?ref_=otl_vqi
https://www.imdb.com/list/ls085850150/?ref_=otl_pq
https://www.imdb.com/list/ls085850175/?ref_=otl_cs
https://www.imdb.com/list/ls085850110/?ref_=otl_tei
https://www.imdb.com/list/ls085850116/?ref_=otl_wvv
https://www.imdb.com/list/ls085850130/?ref_=otl_qs
https://www.imdb.com/list/ls085850161/?ref_=otl_gfx
https://www.imdb.com/list/ls085850124/?ref_=otl_cl
https://www.imdb.com/list/ls085850191/?ref_=otl_pf
https://www.imdb.com/list/ls085850189/?ref_=otl_yy
https://www.imdb.com/list/ls085850308/?ref_=otl_qpr
https://www.imdb.com/list/ls085850375/?ref_=otl_udo
https://www.imdb.com/list/ls085850315/?ref_=otl_ldr
https://www.imdb.com/list/ls085850316/?ref_=otl_ae
https://www.imdb.com/list/ls085850333/?ref_=otl_xf
https://www.imdb.com/list/ls085850366/?ref_=otl_uqk
https://www.imdb.com/list/ls085850369/?ref_=otl_faq
https://www.imdb.com/list/ls085850340/?ref_=otl_bal
https://www.imdb.com/list/ls085850348/?ref_=otl_kp
https://www.imdb.com/list/ls085850384/?ref_=otl_ge
https://www.imdb.com/list/ls085850604/?ref_=otl_lqr
https://www.imdb.com/list/ls085850658/?ref_=otl_mij
https://www.imdb.com/list/ls085850613/?ref_=otl_xfm
https://www.imdb.com/list/ls085850665/?ref_=otl_xtn
https://www.imdb.com/list/ls085850626/?ref_=otl_nos
https://www.imdb.com/list/ls085850696/?ref_=otl_te
https://www.imdb.com/list/ls085850205/?ref_=otl_lw
https://www.imdb.com/list/ls085850255/?ref_=otl_lin
https://www.imdb.com/list/ls085850215/?ref_=otl_ih
https://www.imdb.com/list/ls085850232/?ref_=otl_ui
https://www.imdb.com/list/ls085850266/?ref_=otl_na
https://www.imdb.com/list/ls085850227/?ref_=otl_fhe
https://www.imdb.com/list/ls085850245/?ref_=otl_mn
https://www.imdb.com/list/ls085850246/?ref_=otl_gp
https://www.imdb.com/list/ls085850294/?ref_=otl_fv
https://www.imdb.com/list/ls085850287/?ref_=otl_pyc
https://www.imdb.com/list/ls085850407/?ref_=otl_eeg
https://www.imdb.com/list/ls085850406/?ref_=otl_lc
https://www.imdb.com/list/ls085850450/?ref_=otl_nrb
https://www.imdb.com/list/ls085850474/?ref_=otl_els
https://www.imdb.com/list/ls085850411/?ref_=otl_gz
https://www.imdb.com/list/ls085850418/?ref_=otl_zcm
https://www.imdb.com/list/ls085850460/?ref_=otl_do
https://www.imdb.com/list/ls085850462/?ref_=otl_hw
https://www.imdb.com/list/ls085850421/?ref_=otl_dpp
https://www.imdb.com/list/ls085850440/?ref_=otl_piw
https://www.imdb.com/list/ls085850442/?ref_=otl_ta
https://www.imdb.com/list/ls085850495/?ref_=otl_xpt
https://www.imdb.com/list/ls085850499/?ref_=otl_dk
https://www.imdb.com/list/ls085850988/?ref_=otl_dnf
https://www.imdb.com/list/ls085850802/?ref_=otl_xb
https://www.imdb.com/list/ls085850851/?ref_=otl_hvk
https://www.imdb.com/list/ls085850872/?ref_=otl_yh
https://www.imdb.com/list/ls085850812/?ref_=otl_ys
https://www.imdb.com/list/ls085850834/?ref_=otl_bvp
https://www.imdb.com/list/ls085850864/?ref_=otl_ipe
https://www.imdb.com/list/ls085850822/?ref_=otl_ia
https://www.imdb.com/list/ls085850849/?ref_=otl_loz
https://www.imdb.com/list/ls085850899/?ref_=otl_iac
https://www.imdb.com/list/ls085855002/?ref_=otl_dkb
https://www.imdb.com/list/ls085855052/?ref_=otl_pet
https://www.imdb.com/list/ls085855073/?ref_=otl_ax
https://www.imdb.com/list/ls085855013/?ref_=otl_qmg
https://www.imdb.com/list/ls085855039/?ref_=otl_lou
https://www.imdb.com/list/ls085855025/?ref_=otl_zvm
https://www.imdb.com/list/ls085855045/?ref_=otl_czj
https://www.imdb.com/list/ls085855091/?ref_=otl_uot
https://www.imdb.com/list/ls085855081/?ref_=otl_tbi
https://www.imdb.com/list/ls085855557/?ref_=otl_gn
https://www.imdb.com/list/ls085855515/?ref_=otl_wgl
https://www.imdb.com/list/ls085855512/?ref_=otl_xx
https://www.imdb.com/list/ls085855537/?ref_=otl_prf
https://www.imdb.com/list/ls085855534/?ref_=otl_dco
https://www.imdb.com/list/ls085855565/?ref_=otl_so
https://www.imdb.com/list/ls085855568/?ref_=otl_kud
https://www.imdb.com/list/ls085855521/?ref_=otl_un
https://www.imdb.com/list/ls085855547/?ref_=otl_hnj
https://www.imdb.com/list/ls085855542/?ref_=otl_lut
https://www.imdb.com/list/ls085855596/?ref_=otl_nlh
https://www.imdb.com/list/ls085855700/?ref_=otl_qka
https://www.imdb.com/list/ls085855754/?ref_=otl_sq
https://www.imdb.com/list/ls085855773/?ref_=otl_hrw
https://www.imdb.com/list/ls085855712/?ref_=otl_ki
https://www.imdb.com/list/ls085855731/?ref_=otl_zuc
https://www.imdb.com/list/ls085855760/?ref_=otl_gh
https://www.imdb.com/list/ls085855725/?ref_=otl_fxd
https://www.imdb.com/list/ls085855724/?ref_=otl_iyd
https://www.imdb.com/list/ls085855741/?ref_=otl_gl
https://www.imdb.com/list/ls085855749/?ref_=otl_zw
https://www.imdb.com/list/ls085855783/?ref_=otl_qzj
https://www.imdb.com/list/ls085855150/?ref_=otl_ml
https://www.imdb.com/list/ls085855170/?ref_=otl_ia
https://www.imdb.com/list/ls085855178/?ref_=otl_pzn
https://www.imdb.com/list/ls085855119/?ref_=otl_fyd
https://www.imdb.com/list/ls085855134/?ref_=otl_ph
https://www.imdb.com/list/ls085855125/?ref_=otl_rrk
https://www.imdb.com/list/ls085855193/?ref_=otl_ft
https://www.imdb.com/list/ls085855189/?ref_=otl_sny
https://www.imdb.com/list/ls085855353/?ref_=otl_xdu
https://www.imdb.com/list/ls085855338/?ref_=otl_hrk
https://www.imdb.com/list/ls085855368/?ref_=otl_twg
https://www.imdb.com/list/ls085855324/?ref_=otl_lev
https://www.imdb.com/list/ls085855348/?ref_=otl_yz
https://www.imdb.com/list/ls085855386/?ref_=otl_vk
https://www.imdb.com/list/ls085855601/?ref_=otl_zas
https://www.imdb.com/list/ls085855653/?ref_=otl_nz
https://www.imdb.com/list/ls085855671/?ref_=otl_rk
https://www.imdb.com/list/ls085855619/?ref_=otl_qg
https://www.imdb.com/list/ls085855634/?ref_=otl_sh
https://www.imdb.com/list/ls085855628/?ref_=otl_cxa
https://www.imdb.com/list/ls085855698/?ref_=otl_rt
https://www.imdb.com/list/ls085855259/?ref_=otl_xuv
https://www.imdb.com/list/ls085855408/?ref_=otl_ma
https://www.imdb.com/list/ls085855975/?ref_=otl_vzk
https://www.imdb.com/list/ls085857061/?ref_=otl_kpo
https://www.imdb.com/list/ls085857271/?ref_=otl_nre
https://www.imdb.com/list/ls085857278/?ref_=otl_ie
https://www.imdb.com/list/ls085857230/?ref_=otl_qyk
https://www.imdb.com/list/ls085857221/?ref_=otl_br
https://www.imdb.com/list/ls085857249/?ref_=otl_nh
https://www.imdb.com/list/ls085857404/?ref_=otl_aw
https://www.imdb.com/list/ls085857464/?ref_=otl_ue
https://www.imdb.com/list/ls085857925/?ref_=otl_ij
https://www.imdb.com/list/ls085857803/?ref_=otl_sx
https://www.imdb.com/list/ls085857853/?ref_=otl_uet
https://www.imdb.com/list/ls085857878/?ref_=otl_kb
https://www.imdb.com/list/ls085857818/?ref_=otl_bi
https://www.imdb.com/list/ls085857838/?ref_=otl_nd
https://www.imdb.com/list/ls085857826/?ref_=otl_sll
https://www.imdb.com/list/ls085857847/?ref_=otl_nxe
https://www.imdb.com/list/ls085857891/?ref_=otl_yc
https://www.imdb.com/list/ls085857889/?ref_=otl_nn
https://www.imdb.com/list/ls085851002/?ref_=otl_nz
https://www.imdb.com/list/ls085851071/?ref_=otl_ufn
https://www.imdb.com/list/ls085851012/?ref_=otl_ju
https://www.imdb.com/list/ls085851032/?ref_=otl_klz
https://www.imdb.com/list/ls085851023/?ref_=otl_cdd
https://www.imdb.com/list/ls085851042/?ref_=otl_vj
https://www.imdb.com/list/ls085851082/?ref_=otl_ogy
https://www.imdb.com/list/ls085851504/?ref_=otl_si
https://www.imdb.com/list/ls085851577/?ref_=otl_no
https://www.imdb.com/list/ls085851578/?ref_=otl_fmh
https://www.imdb.com/list/ls085851532/?ref_=otl_kaj
https://www.imdb.com/list/ls085851524/?ref_=otl_idw
https://www.imdb.com/list/ls085851546/?ref_=otl_ujp
https://www.imdb.com/list/ls085851582/?ref_=otl_zhq
https://www.imdb.com/list/ls085851754/?ref_=otl_ae
https://www.imdb.com/list/ls085851719/?ref_=otl_ubn
https://www.imdb.com/list/ls085851761/?ref_=otl_vjo
https://www.imdb.com/list/ls085851742/?ref_=otl_rq
以上五个步骤操作完成,就可以使用了,可能会根据不同的环境出现一些其他问题,可以多看看错误提示,一般性问题都是可以解决的,剩下的就是具体配置mosquitto.conf文件,根据不同的业务要求配置。