摘要:原文鏈接為什么選擇了我也不知道官方中文論壇官方文檔中文文檔安裝此處的方式是安裝部署不用考慮環(huán)境配置問(wèn)題,但是相應(yīng)的也會(huì)有一些弊端比如文件的修改等變得麻煩下方為鏡像的為了修改文件方便,加了一個(gè)文件夾方便和宿主機(jī)文件交換同步上傳的
原文鏈接
為什么選擇了NodeBB?
我也不知道~~~
NodeBB官方Github
NodeBB中文論壇
NodeBB官方文檔
NodeBB中文文檔
安裝此處的方式是Docker安裝部署(https://hub.docker.com/r/node...
不用考慮環(huán)境配置問(wèn)題,但是相應(yīng)的也會(huì)有一些弊端
比如文件的修改等變得麻煩
下方為nodebb鏡像的YAML
cumt: image: index.docker.io/nodebb/docker:v1.9.3 privileged: false restart: always ports: - 4567:4567 volumes: - /bbs/:/usr/src/app/config #為了修改文件方便,加了一個(gè)文件夾方便和宿主機(jī)文件交換 - /bbs/public/uploads:/usr/src/app/public/uploads #同步上傳的文件到宿主機(jī)
同時(shí)關(guān)于docker的管理推薦使用中國(guó)的容器管理平臺(tái),鏡像會(huì)直接拉取國(guó)內(nèi)復(fù)制來(lái)的鏡像
工作室目前用的是https://www.daocloud.io/
拉取nodebb鏡像并生成容器后,再拉取一個(gè)mongodb鏡像作為數(shù)據(jù)庫(kù)容器
為了維護(hù)方便,多帶帶使用一個(gè)容器,以后的nodebb論壇的升級(jí)可以直接拉取新的版本鏡像
安裝新版本的時(shí)候填寫(xiě)數(shù)據(jù)庫(kù)容器內(nèi)網(wǎng)地址就行啦~
在成功生成mongodb容器后,要首先進(jìn)入容器創(chuàng)建我們需要的數(shù)據(jù)庫(kù)名字和此數(shù)據(jù)庫(kù)相應(yīng)的用戶密碼
官方也有介紹
下面是mongo鏡像的YAML,我們通過(guò)數(shù)據(jù)卷可以同步更新數(shù)據(jù)到宿主機(jī)
mongodb: image: library/mongo:3.4.15 privileged: false restart: always ports: - 27017:27017 volumes: - /var/lib/docker/volumes/mongoconfig/_data:/data/configdb - /var/lib/docker/volumes/mongodata/_data:/data/db
一般國(guó)內(nèi)服務(wù)器會(huì)配置安全組,為了方便你也可以暫時(shí)開(kāi)放mongodb容器外網(wǎng)端口
在本機(jī)遠(yuǎn)程連接進(jìn)行配置,這里推薦一款windows可視化工具Robo 3T
然后我們通過(guò)nginx代理設(shè)置我們需要的域名就行了~
這樣安裝之后你就可以配置自己的bbs了,這樣的方式會(huì)給我們省去很多環(huán)境配置的麻煩可能遇到的問(wèn)題
論壇一直顯示斷開(kāi)連接
這時(shí)候你需要修改容器config.json里面的url為你的自定義域名
版本升級(jí)nodebb并不好升級(jí),按照官方文檔的操作我們需要首先備份數(shù)據(jù)庫(kù)和用戶上傳文件
但是我們使用了docker幾句可以避免這些問(wèn)題
然后我們要做的就是更新docker鏡像并重新生成容器,配置相應(yīng)的數(shù)據(jù)庫(kù)就行了
需要注意的是我們生成新的容器后要停用一切插件以防nodebb系統(tǒng)直接崩潰
./nodebb reset -a數(shù)據(jù)庫(kù)維護(hù)和備份
定時(shí)備份數(shù)據(jù)庫(kù)并遷移到其他機(jī)器是件很重要的事情數(shù)據(jù)庫(kù)備份
由于我們使用的是docker容器,備份命令就需要連接我們相應(yīng)的內(nèi)網(wǎng)地址
mongodump -h 172.22.0.12:27017 -u 用戶名 -p 密碼 --authenticationDatabase=數(shù)據(jù)庫(kù)名 -d 數(shù)據(jù)庫(kù)名
我們需要注意的是如果定時(shí)執(zhí)行的腳本在宿主機(jī),我們需要在宿主機(jī)安裝mongo以支持mongodump命令
同時(shí)這個(gè)定時(shí)備份腳本的成功輸出語(yǔ)句并不能正確的反應(yīng)是否成功備份
我們還是最好定期檢查一下
如果你要恢復(fù)數(shù)據(jù)庫(kù)文件,我們可以通過(guò)我們保存的備份文件上傳到新的mongodb外置的數(shù)據(jù)卷
即比如:
把備份文件放到宿主機(jī)的 /var/lib/docker/volumes/mongodata/_data 容器中直接打開(kāi) /data/db 然后解壓之后(tar -zxvf xxx.tar.gz) 運(yùn)行 mongorestore -u nodebb -p yourpassword --authenticationDatabase=nodebb -d nodebb --drop dump/nodebb 即可discuz!數(shù)據(jù)遷移到nodebb
舊的論壇數(shù)據(jù)庫(kù)是Mysql,完全不同的數(shù)據(jù)庫(kù)類型,也是不可能一樣的數(shù)據(jù)庫(kù)字段對(duì)于用戶的篩選
但是論壇的性質(zhì)使得他們數(shù)據(jù)字段部分是相同的,我們只需要過(guò)濾篩選我們所需要的數(shù)據(jù),然后通過(guò)NodeBB接口插件導(dǎo)入我們要用的信息就行了
其實(shí)這個(gè)過(guò)程并不具有技術(shù)難度,只是比較復(fù)雜和麻煩
我們首先需要熟悉Dz和nodebb數(shù)據(jù)庫(kù)各個(gè)字段 DZ數(shù)據(jù)庫(kù)字典
我們都知道Mysql數(shù)據(jù)庫(kù)外鍵很方便我們聯(lián)表或者關(guān)聯(lián)查詢,通過(guò)這種方式把我們需要的用戶信息組成json
通過(guò)NodeBB接口post到mongodb(如果不使用api直接導(dǎo)入到mongo,我們還要自己組合mongo字段)
由于nodebb-api用戶新建只支持用戶名和密碼,郵箱的POST,我們可以新建成功后,記錄下新建成功的用戶uid,然后通過(guò)update用戶信息來(lái)更新用戶資料
關(guān)于用戶的頭像,論壇等cms一般都有自己的用戶頭像文件命名規(guī)則
對(duì)于dz論壇自己獲取頭像的的代碼如下,我們可以通過(guò)模仿流程來(lái)獲取頭像文件夾的路徑
function get_avatar($uid, $size = "middle", $type = "") { $size = in_array($size, array("big", "middle", "small")) ? $size : "middle"; $uid = abs(intval($uid)); $uid = sprintf("%09d", $uid); $dir1 = substr($uid, 0, 3); $dir2 = substr($uid, 3, 2); $dir3 = substr($uid, 5, 2); $typeadd = $type == "real" ? "_real" : ""; return $dir1."/".$dir2."/".$dir3."/".substr($uid, -2).$typeadd."_avatar_$size.jpg"; } =============================================== # python模仿流程 def get_avatar(uid): uid = str(abs(int(uid))) uid_length = len(uid) if uid_length < 9: uid = "0"*(9-uid_length)+uid dir1 = uid[0:3] dir2 = uid[3:5] dir3 = uid[5:7] dir4 = uid[7:9] old_avatar = os.path.join( basedir, "avatar/"+dir1+"/"+dir2+"/"+dir3+"/"+dir4+"_avatar_middle.jpg") return old_avatar ... if avatarstatus != 0: old_avatar = get_avatar(uid) new_avatar_address = "/assets/uploads/profile/%a-profileavatar.jpg" % adduser_uid new_avatar = os.path.join(basedir, "profile/%a-profileavatar.jpg" % adduser_uid) shutil.copy(old_avatar, new_avatar) update_data["picture"] = new_avatar_address update_data["uploadedpicture"] = new_avatar_address對(duì)于帖子和回復(fù)的遷移
理論和以上一樣
我們需要先研究清楚DZ數(shù)據(jù)庫(kù)字典,比如這樣的字典
我們根據(jù)相應(yīng)數(shù)據(jù)字段來(lái)組合我們需要的mongodb字典
我們需要注意的是,在這個(gè)表段的組合之后我們也需要update相應(yīng)的帖子資料
更新帖子的發(fā)表時(shí)間,以及發(fā)表作者(我的腳本里只更新了帖子的作者,沒(méi)有更新帖子發(fā)表字段,因此造成用戶沒(méi)有記錄帖子發(fā)表數(shù),但是帖子詳情頁(yè)作者顯示正確)
如果導(dǎo)入HTMLParser報(bào)錯(cuò),可以參考下面的文件更新到python相應(yīng)的Lib/site-packages文件夾中 HTMLParser報(bào)錯(cuò)文件參考
如果requests失敗,就增加time.sleep減少發(fā)送頻率
dz是s級(jí)別的時(shí)間戳,而nodebb是13位的毫秒級(jí),轉(zhuǎn)換公式 reply_dateline = int(round(reply_dateline*1000))
遷移腳本完整部分(供參考)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/19303.html
摘要:使用默認(rèn)配置,請(qǐng)按回車。數(shù)據(jù)庫(kù)選擇,填寫(xiě),還會(huì)要求填寫(xiě)管理員賬號(hào)密碼等。如果是在下使用數(shù)據(jù)庫(kù),那么整個(gè)過(guò)程也差不多,只是需要配置下數(shù)據(jù)庫(kù),其他都一樣。1、簡(jiǎn)介項(xiàng)目:https://github.com/NodeBB/NodeBB 官網(wǎng):https://nodebb.org/ 文檔:https://docs.nodebb.org/ 演示:https://try.nodebb.org/2、準(zhǔn)備寶...
摘要:自行建站服務(wù)器購(gòu)買(mǎi)網(wǎng)站搭建網(wǎng)站維護(hù)全程自主,彈性靈活。網(wǎng)站部署常見(jiàn)網(wǎng)站類型有以下幾種個(gè)人博客常用于搭建個(gè)人博客網(wǎng)站,尤其適用于首次使用阿里云進(jìn)行建站的新用戶。若您需要在阿里云服務(wù)器上部署站點(diǎn)環(huán)境安裝應(yīng)用程序,可點(diǎn)此查看網(wǎng)站基礎(chǔ)環(huán)境搭建服務(wù)。相信很多新用戶會(huì)有這樣的疑惑,我要做個(gè)網(wǎng)站,到底要使用什么產(chǎn)品,如何能快速完成網(wǎng)站建站呢?搭建網(wǎng)站有兩種選擇,一種是直接購(gòu)買(mǎi)建站模板,另一種則是自行建站。...
摘要:自行建站服務(wù)器購(gòu)買(mǎi)網(wǎng)站搭建網(wǎng)站維護(hù)全程自主,彈性靈活。網(wǎng)站部署常見(jiàn)網(wǎng)站類型有以下幾種個(gè)人博客常用于搭建個(gè)人博客網(wǎng)站,尤其適用于首次使用阿里云進(jìn)行建站的新用戶。若您需要在阿里云服務(wù)器上部署站點(diǎn)環(huán)境安裝應(yīng)用程序,可點(diǎn)此查看網(wǎng)站基礎(chǔ)環(huán)境搭建服務(wù)。前言相信很多新用戶會(huì)有這樣的疑惑,我要做個(gè)網(wǎng)站,到底要使用什么產(chǎn)品,如何能快速完成網(wǎng)站建站呢?搭建網(wǎng)站有兩種選擇,一種是直接購(gòu)買(mǎi)建站模板,另一種則是自行建...
摘要:推薦閱讀資源庫(kù)工具應(yīng)用程序精選列表中文版有哪些鮮為人知,但是很有意思的網(wǎng)站一份攻城獅筆記每天搜集上優(yōu)秀的項(xiàng)目一些有趣的民間故事超好用的谷歌瀏覽器油猴插件合集目錄資源文檔文章圖書(shū)會(huì)談教程更多庫(kù)工具管理數(shù)據(jù)部署桌面發(fā)展監(jiān)控應(yīng)用資源文檔介紹文檔教 推薦閱讀 MongoDB 資源、庫(kù)、工具、應(yīng)用程序精選列表中文版 有哪些鮮為人知,但是很有意思的網(wǎng)站? 一份攻城獅筆記 每天搜集 Github ...
摘要:于是就有了這次的版本升級(jí)任務(wù)。如果返回的值小于,那么則需要用在庫(kù)里具有權(quán)限的用戶連上的庫(kù)然后執(zhí)行用戶認(rèn)證格式轉(zhuǎn)換。參考文檔及軟件下載鏈接升級(jí)官方指南升級(jí)官方指南警告的解決方案下載下載 最近為了長(zhǎng)遠(yuǎn)考慮想把項(xiàng)目MongoDB里存放的400多萬(wàn)數(shù)據(jù)遷移到云服務(wù)廠商提供的MongoDB服務(wù)上,省去自己去維護(hù)的時(shí)間,但是看了下云服務(wù)對(duì)MongoDB數(shù)據(jù)遷移上云的要求是自建MongoDB數(shù)據(jù)庫(kù)的...
閱讀 1748·2021-10-13 09:39
閱讀 1317·2019-08-30 13:58
閱讀 1412·2019-08-29 16:42
閱讀 3561·2019-08-29 15:41
閱讀 2991·2019-08-29 15:11
閱讀 2470·2019-08-29 14:10
閱讀 3405·2019-08-29 13:29
閱讀 2087·2019-08-26 13:27