隨著自己碼農(nóng)生涯的深入,知識(shí)的不斷積累注祖,高效并且穩(wěn)妥地管理自己的知識(shí)變得非常急迫猾蒂,在各種公眾筆記里面找了一大圈,發(fā)現(xiàn)并沒有什么特別合適的(不是太貴就是有廣告)是晨,偶然間發(fā)現(xiàn)leanote婚夫,而且還是喜聞樂見的開源產(chǎn)物,正好自己在騰訊云買的學(xué)生優(yōu)惠服務(wù)器都沒干過什么正事署鸡,正好就可以拿來部署私有的云筆記案糙。
部署準(zhǔn)備
首先,我的服務(wù)器是騰訊云買的云服務(wù)器靴庆,安裝Ubuntu Server 14.04.1 LTS 64位系統(tǒng)时捌,同時(shí)使用OneinStack安裝了Nginx,Nginx是進(jìn)行端口轉(zhuǎn)發(fā)用的炉抒,畢竟沒有那么多80端口啊奢讨。網(wǎng)上找了很多教程,但是安裝過程不是很順利焰薄,這里再寫寫我的經(jīng)驗(yàn)拿诸。
部署過程概覽
- 下載二進(jìn)制文件
- 安裝Mongodb
- 更改配置文件
- 啟動(dòng)leanote
- 設(shè)置端口轉(zhuǎn)發(fā)
下載二進(jìn)制文件
這里直接去官網(wǎng)下載Linux的二進(jìn)制文件
> wget http://nchc.dl.sourceforge.net/project/leanote-bin/2.0/leanote-linux-amd64-v2.0.bin.tar.gz
然后將其解壓
> tar -xzvf leanote-linux-amd64.v2.0.bin.tar.gz
接著把它放到你想放的地方扒袖,我喜歡把所有的軟件都放到/usr/local/
下,雖然這樣可能會(huì)導(dǎo)致各種權(quán)限問題亩码,大家可以按自己的習(xí)慣來
> sudo mv leanote /usr/local/
安裝Mongodb
網(wǎng)上很多教程都說這一步需要去官網(wǎng)下載最新的Mongodb來安裝季率,但是這一步一直有報(bào)錯(cuò),無法通過描沟,最后我直接使用了apt-get來安裝Mongodb飒泻,各位大神可以自行去研究
> sudo apt install mongodb-server
然后嘗試啟動(dòng)Mongodb,其需要一個(gè)存放數(shù)據(jù)的路徑
> mkdir data
> mongod --dbpath /data/mongodb/data
這一步之后吏廉,會(huì)出現(xiàn)一大堆東西泞遗,類似
-07-02T02:14:19.474-0400 [initandlisten] MongoDB starting : pid=5073 port=27017 dbpath=/data/mongodb/data 64-bit host=localhost
…………
-07-02T02:14:19.599-0400 [initandlisten] waiting for connections on port 2701
出現(xiàn)這個(gè)運(yùn)行端口和等待連接之后,就可以了席覆,此時(shí)Mongodb就已經(jīng)安裝成功了史辙,我們需要導(dǎo)入leanote的原始數(shù)據(jù),其實(shí)就是創(chuàng)建表之類的佩伤,這里我們需要先重新開一個(gè)終端髓霞,因?yàn)镸ongodb已經(jīng)在運(yùn)行了,直接復(fù)制一個(gè)SSH通道就可以了畦戒,然后開始導(dǎo)入數(shù)據(jù)方库,數(shù)據(jù)存放在?/leanote/mongodb_backup/leanote_install_data/
下
> mongorestore -h localhost -d leanote --dir /usr/local/leanote/mongodb_backup/leanote_install_data/
這樣,整個(gè)leanote的數(shù)據(jù)庫(kù)就已經(jīng)配置好了障斋,官方還建議我們?yōu)閘eanote的數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)用戶
> mongo
> show dbs;
這樣纵潦,我們應(yīng)該能夠看到一個(gè)leanote的數(shù)據(jù)庫(kù),切換到里面垃环,并且添加用戶
> use leanote;
> db.createUser({
user: 'root',
pwd: 'abc123',
roles: [{role: 'dbOwner', db: 'leanote'}]
});
> db.auth("root", "abc123");
最后一行是驗(yàn)證是否正確邀层,如果正確了,會(huì)返回1
遂庄。另外直接使用exit;
命令可以推出Mongodb的shell寥院。接下來我們要開啟權(quán)限驗(yàn)證,首先在運(yùn)行Mongodb的會(huì)話按下Ctrl+C
結(jié)束其進(jìn)程涛目,然后重啟之
> mongod --dbpath /home/user1/data --auth
修改配置文件
我們回到另外的會(huì)話秸谢,開始修改配置文件
> sudo vim /usr/local/leanote/conf/app.conf
如果你在當(dāng)前用戶權(quán)限的文件夾下,不需要root權(quán)限即可修改霹肝,需要修改的項(xiàng)如下
site.url=leanote.yangmqglobe.cn #我們要配置外網(wǎng)訪問估蹄,需要修改
db.username=root #我們創(chuàng)建了用戶權(quán)限,需要添加
db.password=abc123 #數(shù)據(jù)庫(kù)的密碼
app.secret=abc123 #這行官方稱為了安全必須修改沫换,想改啥改啥
這樣整個(gè)leanote的配置就完成了
啟動(dòng)leanote
運(yùn)行?/leanote/bin/run.sh
即可啟動(dòng)leanote
>sh /usr/local/leanot/bin/run.sh
此時(shí)臭蚁,leanote就已經(jīng)啟動(dòng)了,和Mongodb類似,我們暫時(shí)不能關(guān)閉這個(gè)進(jìn)程垮兑,因?yàn)槲沂沁h(yuǎn)程連接云服務(wù)器冷尉,所以,我不能用瀏覽器去試著訪問系枪,而外網(wǎng)也并不允許訪問(我開啟了防火墻)雀哨,我復(fù)制了一個(gè)SSH通道,用wget
試了一下
> wget localhost:9000
發(fā)現(xiàn)確實(shí)能夠訪問嗤无,下載到了一個(gè)html文件,這就表明已經(jīng)可以訪問了。
設(shè)置端口轉(zhuǎn)發(fā)
因?yàn)槲覀兛偛荒苁裁炊际褂?0端口怜庸,那么我們可以借助Nginx進(jìn)行端口的轉(zhuǎn)發(fā)当犯,我用leanote.yangmqglobe.cn這個(gè)二級(jí)域名來訪問leanote,所以我添加一個(gè)虛擬服務(wù)器如下
server {
listen 80;
server_name leanote.yangmqglobe.cn;
access_log off;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
大致的意思是割疾,來自leanote.yangmqglobe.cn的訪問全部轉(zhuǎn)發(fā)至9000端口處理嚎卫,同時(shí)添加一些頭信息。接下來檢查一下
> nginx -t
如果沒有報(bào)錯(cuò)宏榕,說明配置信息無誤(當(dāng)時(shí)我使用的并非Nginx的默認(rèn)啟動(dòng)用戶拓诸,所以還報(bào)了一些權(quán)限問題的錯(cuò)誤,大家要仔細(xì)鑒別一下哦B橹纭)奠支。然后重啟Nginx服務(wù)
> service nginx reload
這里可能需要用Nginx服務(wù)的專用用戶去操作,大家按照自己的配置來抚芦。接著我們外網(wǎng)瀏覽器訪問leanote.yangmqglobe.cn就能看到倍谜,整個(gè)leanote已經(jīng)能夠使用了。最后叉抡,我們還需要做一個(gè)工作尔崔,因?yàn)槲覀兊膌eanote是在前臺(tái)運(yùn)行的,如果我們關(guān)閉SSH鏈接褥民,再訪問就會(huì)返回503錯(cuò)誤季春,因?yàn)閘eanote的進(jìn)程也會(huì)隨著SSH進(jìn)程被殺死而被殺死。先將前臺(tái)運(yùn)行的leanote結(jié)束消返,簡(jiǎn)單的我們將leanote丟到后臺(tái)
> nohup run.sh >/dev/null 2>&1
這樣我們把leanote扔進(jìn)后臺(tái)運(yùn)行同時(shí)忽略他的輸出载弄,即使我們關(guān)閉SSH連接也能繼續(xù)使用服務(wù)了!其實(shí)這樣也是可以的撵颊,但是為了防止該進(jìn)程被殺死侦锯,推介使用進(jìn)程守護(hù)工具supervisor,首先安裝
sudo apt install supervisor
然后編輯配置文件秦驯,創(chuàng)建文件/etc/supervisor/conf.d/leanote.conf
尺碰,內(nèi)容如下:
[program:leanote]
command=sh /usr/local/leanote/bin/run.sh
autostart=true
stdout_logfile=/dev/null
意思是創(chuàng)建名字叫l(wèi)eanote的程序,其運(yùn)行命令,是否自動(dòng)啟動(dòng)亲桥,標(biāo)準(zhǔn)輸出的文件位置÷逍模現(xiàn)在啟動(dòng)supervisor即可
sudo /etc/init.d/supervisor start
如果想查看一下leanote進(jìn)程的狀況
> sudo supervisorctl status leanote