需要一個類似Dropbox類似的共享服務器,經(jīng)過分析后選擇使用NextCloud,直接在Ubuntu服務器上通過Docker來實現(xiàn),同時希望提供MS Office文檔的在線編輯功能蜀变,故同時給它集成ONLYOFFICE。
1. 安裝NextCloud
這里假定NextCloud服務使用8080端口介评,然后數(shù)據(jù)卷的名稱為nextcloud_data
库北,容器名稱為tstnextcloud
,容器每次都自動重啟,命令如下:
#拉取鏡像
sudo docker pull nextcloud
#創(chuàng)建容器
sudo docker run -d --name tstnextcloud -p 8080:80 -v nextcloud_data:/var/www/html nextcloud
安裝完成確認容器tstnextcloud啟動了后贤惯,可以通過如下URL訪問nextcloud,并按提示來進行初始化棒掠,假設我們的Docker服務器的IP為192.168.1.11
:
http://192.168.1.11:8080
2. NextCloud的LDAP集成的配置
這里假定NextCloud通過與Windows AD服務器192.168.1.12
進行LDAP集成孵构,以使它能使用Windows AD的用戶賬號進行登錄
2.1 登錄后點擊右上角用戶圖標,然后選擇Apps
在設置界面左側(cè)面板中選擇
App bundles
烟很,然后找到LDAP user and group backend
并點擊Enable
或者Download and enable
按鈕下載(如果還沒有的話)并啟用它颈墅,使它成下圖所示可以關閉的Disable
狀態(tài):2.2 登錄后點擊右上角用戶圖標,然后選擇
Administration Setting
再在左側(cè)面板中找到LDAP/AD integration
來配置LDAP的集成2.3 填入服務器的相關信息雾袱,Windows服務器的地址或者名稱恤筛、端口號(可以點
Detect Port
按鈕進行自動檢測,默認是389
)芹橡、憑據(jù)毒坛、以及Base DN(比如:DC=mydomain,DC=local
)等然后點Continue
按鈕進行一下步配置。2.4 用戶頁面的設置林说,可以指定僅搜索
user
類型煎殷,然后指定特定的安全組即可,只有選定的安全組中的用戶可以登錄NextCloud腿箩,如下圖所示:2.5 配置登錄的時候使用的用戶名等豪直,這里我希望用戶用Windows用戶名和其郵箱地址均可登錄 ,故選擇了兩個珠移,可酌情選擇:
2.6 指定會用于NextCloud的安全組的導入弓乙,導入后可以用于權限等的控制(可選,如果不在Windows AD上控制權限钧惧,這里可以忽略)
如此操作后暇韧,如果沒有問題,在NextCloud的用戶界面中一會后即可看到相應導入的用戶和組浓瞪,并可進行登錄了锨咙。
3. 安裝ONLYOFFICE提供MS Office文檔的在線編輯功能
這里還是通過Docker的方式安裝,容器命名為tstonlyoffice
追逮,使用端口號為8180
酪刀,并使容器每次自動重啟,命令如下:
#拉取鏡像
sudo docker pull onlyoffice/documentserver:latest
#創(chuàng)建容器
sudo docker run -d --name tstonlyoffice -p 8180:80 --restart=always onlyoffice/documentserver
容器啟動后钮孵,可以通過下面URL查看并復制方框里的獲取密鑰的命令:
http://192.168.1.11:8180
將復制的命令放到Ubuntu主機上運行它骂倘,會顯示一個密鑰字串,復制它以進行下一步在NextCloud中的設置巴席。
4. 在NextCloud中配置ONLYOFFICE
4.1 按上面2.1的方式進入安裝啟用ONLYOFFICE
4.2 按上面2.2的方式找到ONLYOFFICE
并點擊進行設置历涝,將前面步驟復制的密鑰粘貼到Secret key
文本框里,把上面的ONLYOFFICE的服務器地址http://192.168.1.11:8180
填到ONLYOFFICE Docs address
文本框里,然后點擊保存即可荧库。
5. 將服務對互聯(lián)網(wǎng)進行開放
通過上面的安裝配置后堰塌,整個系統(tǒng)對于局域網(wǎng)內(nèi)已經(jīng)具備完全的服務能力了,接下來介紹如何將之以域名連接到互聯(lián)網(wǎng)上提供服務分衫,假定保持端口號不變场刑。
假定要將服務以域名lib.mydomain.com
的域名對外提供服務,NextCloud端口依然保持8080
蚪战,而ONLYOFFICE端口依然是8180
牵现。
5.1 在路由器上進行NAT配置,將這兩個端口映射到內(nèi)網(wǎng)服務器上(TP-LINK路由器上可能叫虛擬服務器)
5.2 我們現(xiàn)在要編輯NextCloud容器上主目錄下config\config.php
的配置邀桑,使這個域名得到允許瞎疼。
編輯這個文件的辦法有幾個,一個是通過docker cp命令把這個文件復制出來壁畸,編輯后再復制回去贼急,這里就不介紹了。
下面介紹一個不需要復制文件的方法:
5.2.1 運行下面命令捏萍,找到我們上面第1步里指定的數(shù)據(jù)卷nextcloud_data
在Ubuntu主機里的位置:
sudo docker volume inspect nextcloud_data
上面命令會顯示nextcloud_data
在主機里的具體位置:
[
{
"CreatedAt": "2024-10-14T03:39:40Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/nextcloud_data/_data",
"Name": "nextcloud_data",
"Options": null,
"Scope": "local"
}
]
在主機上用cd
命令切換到上面的Mountpoint
里指定的路徑/var/lib/docker/volumes/nextcloud_data/_data
cd /var/lib/docker/volumes/nextcloud_data/_data
現(xiàn)在可以使用各種方式編輯當前目錄下config
目錄里的config.php
文件了竿裂,這里我用vi
來編輯,也可以用nano
等照弥,甚至可以使用1panel
等Linux控制面板來直接編輯腻异。
vi config/config.php
打開文件后找到下面的小節(jié):
'trusted_domains' =>
array (
0 => '192.168.1.11:8080',
),
給它加上一段關于域名的配置:
'trusted_domains' =>
array (
0 => '192.168.1.11:8080',
1 => 'lib.mydomain.com:8080',
),
重啟NextCloud容器后即可生效,最后還要按上面第4步的方法这揣,把ONLYOFFICE Docs address
對應的也更新成對應的域名悔常,如下圖:
需要注意的是,如果防火墻是SonicWall的情況下给赞,上面ONLYOFFICE配置是沒辦法保存成功的机打,需要對使用到的兩個端口(8080和8180)進行Loopback的NAT設置,使跟服務器同在一個局域網(wǎng)的用戶可以通過互聯(lián)網(wǎng)IP來訪問局域網(wǎng)內(nèi)的服務器片迅,放一個截圖(圖上的Translated Destination
是Ubuntu主機的IP地址也就是這里的192.168.1.11
残邀,NextCloud Related Services
是8080
和8180
兩個TCP端口),這里不贅述過程柑蛇。