參考文章來自這篇文章录肯,https://post.smzdm.com/p/735879/
但實(shí)際安裝過程中發(fā)現(xiàn)不少不一致和沒寫清楚的地方,進(jìn)行補(bǔ)充。當(dāng)前時(shí)間是2020-5-15荐糜,使用的nextcloud版本是18.04,先說下這個(gè)版本在哪看,找這個(gè)找了半天暴氏,在概覽里面延塑。
以下為正文:
一、nextcloud私有云的docker安裝
首先答渔,在群暉docker應(yīng)用的注冊(cè)表里面关带,搜索并下載wonderfall/nextcloud的docker鏡像,如下圖所示:
和參考文不同沼撕,直接下載的第一個(gè)星最多的宋雏。
下載好nextcloud的docker鏡像以后,我們?cè)凇坝诚瘛睒?biāo)簽頁中選擇啟動(dòng)這個(gè)鏡像,并在彈出的對(duì)話框中選擇“高級(jí)設(shè)置”务豺。這里我們對(duì)“卷”和“端口設(shè)置”里面的內(nèi)容進(jìn)行設(shè)置磨总。
卷設(shè)置,這個(gè)和參考文不一樣笼沥,參考文里是app2蚪燕,估計(jì)這和他下載的鏡像有關(guān)。我查到的配置參數(shù)是這樣的
因此我的卷配置為敬拓,注意這里給外部的文件夾讀寫權(quán)限邻薯。
端口設(shè)置
成功后訪問對(duì)應(yīng)的18082端口
首次訪問,要設(shè)置一個(gè)管理員賬號(hào)和密碼乘凸,同時(shí)需要配置數(shù)據(jù)庫厕诡,默認(rèn)的話是sqllaite,這里還有mysql和mariaDB营勤,postageSql可以選擇灵嫌。
因?yàn)槲业娜簳熤幸呀?jīng)有MariaDB10 數(shù)據(jù)庫,所以打算就用這個(gè)葛作。
然后安裝一個(gè)phpmyadmin來登陸這個(gè)數(shù)據(jù)庫寿羞。數(shù)據(jù)的密碼年代久遠(yuǎn),已經(jīng)忘了赂蠢,試下和nas的密碼绪穆,居然進(jìn)來了,或者點(diǎn)擊MariaDb也可以修改密碼虱岂。這里還能查到端口號(hào)玖院,后面有用。
使用phpmyadmin新建一個(gè)數(shù)據(jù)庫第岖,名稱nextcloud
回到nextcloud頁面填入新建的參數(shù)
注意還需要填數(shù)據(jù)庫的端口號(hào)难菌。然后這里又有坑,
軟件是安裝在docker里的蔑滓,數(shù)據(jù)再nas里也就是宿主機(jī)內(nèi)郊酒,這個(gè)網(wǎng)絡(luò)不通遇绞。搜索這個(gè)問題的解決方法,網(wǎng)上一堆登陸到ssh里修個(gè)的辦法燎窘,太麻煩摹闽,直接在phpadmini輸入這句接可以了。
GRANT ALL PRIVILEGES ON . TO 'root'@'%'IDENTIFIED BY '你的密碼' WITH GRANT OPTION;
然后耐心等待系統(tǒng)把套件下載安裝完成褐健。
安裝完成后將地址映射到外網(wǎng)钩骇,通過外網(wǎng)訪問,出現(xiàn)以下錯(cuò)誤铝量。
按提示是說要配置config/php文件,看了以下映射的文件夾內(nèi)银亲,是有這個(gè)文件存在慢叨。
打開配置文件里內(nèi)容
加一條自己的域名
然后系統(tǒng)奔潰了,到處是坑务蝠。
這惡心的問題在于拍谐,當(dāng)外部修改后的文件放入時(shí)讀寫權(quán)限發(fā)生了變化,nas里查看新config.php文件的權(quán)限馏段。
在看一下其他配置的權(quán)限
所以要給改的文件重新讀寫權(quán)限設(shè)置轩拨。然后通過外網(wǎng)就可以訪問了
----分割-- 以下安裝插件
比較適合安裝的插件是
- draw.io
- mind
- onlyoffice
先去nextcloud的cloud的商店下載下來,記住版本是的選擇院喜,我這是18.
https://apps.nextcloud.com/ 這個(gè)網(wǎng)站下載亡蓉,速度有點(diǎn)慢。
image.png
下載完后放到剛才映射的app的文件夾里
image.png
如果映射沒問題喷舀,那么在nextcloud的應(yīng)用里就多處這四個(gè)插件砍濒。
image.png
啟用這4個(gè)插件。
image.png
成功后在新建文件這就會(huì)有多兩按鈕硫麻,設(shè)置保存就可以了爸邢。
image.png
---onlyoffice
安裝部分網(wǎng)上很多,就不描述拿愧,也是按docker安裝的杠河,已經(jīng)能看到服務(wù)了。
image.png
在nextcloud的設(shè)置里浇辜,會(huì)多一個(gè)onlyoffice的設(shè)置按鈕
image.png
這里又遇到問題券敌,在內(nèi)網(wǎng)的話可以正確連接到服務(wù)器,把服務(wù)器地址放外網(wǎng)一直提示連接失敗奢赂。
image.png
image.png
加了上面那個(gè)也沒用陪白,在這git上有答案
https://github.com/ONLYOFFICE/onlyoffice-owncloud/issues/181
image.png
按紅色 的臨時(shí)方案解決,進(jìn)入到onlyoffice的鏡像里改這個(gè)值膳灶。
image.png
找到了咱士,但是設(shè)備上沒有vi立由,沒法改。
image.png
曲線救國先把文件復(fù)制到映射文件夾序厉,拿到外部改完了再放回去锐膜。
image.png
外部修改。
image.png
以上的所有操作證明都無效弛房,這個(gè)問題網(wǎng)絡(luò)上有很多的提問道盏,但是一直沒找到答案,經(jīng)過2天的分析文捶,終于明白了失敗的具體原因荷逞,和我當(dāng)前的組網(wǎng)有關(guān)系,下面先畫一個(gè)目前組網(wǎng)的示意圖粹排。另外需要知道這兩設(shè)備有兩個(gè)過程要做:1.nextcloud連接onlyoffice 2.onlyoffice到nextcloud拉取文件
第一種情況:配置onlyoffice地址為192.168.x.x
服務(wù)地址配置192.168.x.x种远,能正常連接也能正常訪問,數(shù)據(jù)不通過外部網(wǎng)絡(luò)顽耳,不過這時(shí)候只能局域網(wǎng)自己玩玩坠敷,如果從外網(wǎng)的某一主機(jī)連入,會(huì)出現(xiàn)加載服務(wù)器錯(cuò)誤射富,因?yàn)檫@時(shí)候配置的是192.168.x.x膝迎,此時(shí)外部發(fā)起的請(qǐng)求,onlyoffice還是會(huì)去連接192.168.x.x地址胰耗。
第二種情況:配置onlyoffice地址外部映射地址115.xxx.xx.xx
在這個(gè)情形會(huì)出現(xiàn)另一種情況限次,在局域網(wǎng)內(nèi)我們通過192.168.xx.xx的地址去訪問nextcloud和onlyoffice的服務(wù)都是可以正常的,但是在內(nèi)網(wǎng)通過115.xxx.xx.xx地址訪問柴灯,直接會(huì)找不到服務(wù)器掂恕。這里涉及到另一個(gè)問題,就是在局域網(wǎng)內(nèi)通過自身公網(wǎng)訪問自己弛槐,路由器在收到這類地址的時(shí)候好像是為了安全懊亡,丟棄這類數(shù)據(jù)的,這就導(dǎo)致了如果給nextcloud配置onlyoffice外網(wǎng)地址路由器這關(guān)都過不去乎串。配置的時(shí)候會(huì)提示連接失敗店枣,網(wǎng)上很少改host的方法,對(duì)路由要求太高叹誉,容易弄亂網(wǎng)絡(luò)鸯两。
配置外網(wǎng)地址,在外網(wǎng)訪問會(huì)出現(xiàn)文件拉取錯(cuò)誤长豁。
這問題在當(dāng)前網(wǎng)絡(luò)環(huán)境下難以解決钧唐,只想到了兩個(gè)辦法
1.在另一臺(tái)云主機(jī)安裝配置onlyoffice
方案一很簡(jiǎn)單,網(wǎng)絡(luò)示意如下圖
這個(gè)情形下很好理解匠襟,不過在配置的時(shí)候有一個(gè)地方需要注意钝侠,在外網(wǎng)時(shí)沒問題该园,但如果通過內(nèi)外訪問,會(huì)出現(xiàn)無法拉取文件的問題帅韧,查看onlyoffice的文件錯(cuò)誤提示(文件在docker 鏡像內(nèi)部/root/onlyoffice/logs/documentserver/converter/out.log里)
[2020-05-15T19:56:40.301] [ERROR] nodeJS - error downloadFile:url=http://192.168.1.110:18082/apps/onlyoffice/empty?doc=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY3Rpb24iOiJlbXB0eSJ9.IFkknNDAekyomrhunK1KvdH29qv89XNNYE1vfIxvkQk;attempt=1;code:ETIMEDOUT;connect:true;(id=conv_check_1570064549_docx)
也就是說在onlyoffice是根據(jù)訪問過來的地址去生成文件的下載url里初,如果在外部訪問生成的就是外部訪問的url,針對(duì)這個(gè)問題nextcloud的有一個(gè)高級(jí)配置忽舟,可以解決双妨。
Server address for internal requests from the Document Editing Service這個(gè)值相當(dāng)于是告訴onlyoffice實(shí)際的訪問地址是哪個(gè),這樣能保證內(nèi)網(wǎng)外網(wǎng)都可以訪問使用叮阅。
2.通過sockt 端口轉(zhuǎn)發(fā)來實(shí)現(xiàn)
這個(gè)方式實(shí)際是繞過了內(nèi)網(wǎng)不能訪問自身公網(wǎng)地址web的問題刁品,在嘗試連接onlyoffice時(shí)走到外網(wǎng),然后轉(zhuǎn)到內(nèi)網(wǎng)的onlyoffice浩姥,onlyoffice通過內(nèi)部網(wǎng)絡(luò)拉取文件哑诊。(這里使用了rinetd,安裝簡(jiǎn)單)
這個(gè)配置上有一點(diǎn)區(qū)別及刻,現(xiàn)在的nextcloud和onlyoffice在同個(gè)內(nèi)網(wǎng),因此在配置Server address for internal requests from the Document Editing Service時(shí)填的是內(nèi)網(wǎng)地址192.168.x.x竞阐,文件通過內(nèi)網(wǎng)拉取缴饭,連接走外網(wǎng)。
總結(jié):兩個(gè)方法都可以骆莹,問題解決了颗搂,成本增加了,本人目前使用方法2幕垦。
補(bǔ)充:經(jīng)過研究丢氢,有了第三種解決方案
通過在NAS內(nèi)建立dns服務(wù)器,來做域名欺騙先改,是內(nèi)網(wǎng)機(jī)器在使用外網(wǎng)域名訪問時(shí)候直接翻譯成內(nèi)網(wǎng)地址疚察,網(wǎng)絡(luò)邏輯如下
具體的做法:
1.現(xiàn)在nas里安裝dns server,如果是其他系統(tǒng)可以使用類似的軟件仇奶,我用的是群暉所以直接安裝了貌嫡。
2.配置dns server,增加一條master區(qū)域的域名该溯,因?yàn)橛玫氖莇dns.net的域名岛抄,加這么一條。
3.配置一個(gè)A類解析狈茉,將我真正使用的域名解析為nas的地址夫椭,這樣如果在內(nèi)網(wǎng)使用域名訪問就會(huì)解析為12.168.1.110
4.啟動(dòng)解析服務(wù),不需要解析的還是都送網(wǎng)關(guān)解析
5.為nextcloud和onlyoffice配置dns域名氯庆,指向192.168.1.110.
第一次修改的時(shí)候通過登錄到docker里面修改/ect/ resolv.conf 里的地址來做蹭秋,每次一重啟就丟失扰付,然后網(wǎng)上說的其他固定resolv的方法在docker鏡像里指令都沒有。后來經(jīng)過研究發(fā)現(xiàn)docker里的這個(gè)值是直接映射宿主機(jī)的感凤,所以直接在宿主機(jī)上加了一條dns規(guī)則悯周。
重啟后docke就能按110的地址先進(jìn)行域名解析。
6.重新配置參數(shù)陪竿,按如下配置就可以禽翼。
接上文,解決了網(wǎng)絡(luò)部署的問題族跛,就需要解決下字體的問題闰挡,這個(gè)好像是個(gè)通病,我現(xiàn)在安裝的onlyoffice是5.5版本礁哄,確認(rèn)過我們常用的宋體是沒有的长酗。
步驟一:
先把電腦中的字體拷貝出來,在windows/Fonts里桐绒。
步驟二:
因?yàn)槭前惭b在nas的docker里夺脾,所以步驟比一般的linux安裝麻煩一點(diǎn),需要先把文件放到nas里茉继,然后通過docker cp指令拷貝到docker里咧叭。所以,先把文件拷貝到nas的一個(gè)共享文件夾里烁竭,這里借用了共享的video文件夾菲茬,然后通過ssh指令登錄到nas里。
如圖派撕,字體拷貝到nas里婉弹,輸入命令
docker cp /volume1/video/download/Fonts/ 808322bcaa6d:/usr/share/fonts/truetype/custom
輸入命令docker exec -it 808322bcaa6d /bin/bash 到docker里檢查一下,然后再鏡像內(nèi)终吼,進(jìn)入/usr/bin目錄 輸入
但是這樣操作后會(huì)有一個(gè)問題镀赌,原來的字體和新加入的字體都在,默認(rèn)情況下中文宋體還是選擇Calibri字體來加載际跪,所以還是需要將核心庫的字體也刪除佩脊,重復(fù)上面的工作,核心字體在這里
/var/www/onlyoffice/documentserver/core-fonts全部刪除 rm -rf *