一、部署環(huán)境
系統(tǒng)版本:CentOS Linux release 7.9.2009 (Core)
配置:16C 16G
MySQL:5.7.20
二、部署過程
1、安裝docker和docker-compose
請百度
2、創(chuàng)建數(shù)據(jù)庫和用戶,并授權(quán)
因?yàn)槲沂褂猛庵肕ySQL,所以需要先創(chuàng)建數(shù)據(jù)庫和授權(quán)
create database nextcloud;
grant all on nextcloud.* to nextcloud@'%' identified by '123456';
注意:因?yàn)橛玫氖莇ocker安裝,所以授權(quán)最好授權(quán)%。
3、安裝nextcloud
[root@云盤 nextcloud]# mkdir /data/nextcloud/nextcloud
[root@云盤 nextcloud]# cd /data/nextcloud
[root@云盤 nextcloud]# cat docker-compose.yml
version: '2'
services:
app:
container_name: "nextcloud"
image: nextcloud:27.0.1 # 安裝的版本號,這個(gè)是我裝的時(shí)候最新版的版號
restart: always
ports:
- 8080:80 # 映射到服務(wù)器端口
volumes:
- /data/nextcloud/nextcloud:/var/www/html # 將代碼掛載出來,方便以后修改
environment: # 我使用的是外置數(shù)據(jù)庫,所以要配置下面賬密,nextcloud提示要MySQL8.0 以上版本的,我用的是MySQL5.7.20 不過使用好像沒啥問題
- MYSQL_PASSWORD=123456
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=192.168.2.204
[root@云盤 nextcloud]# docker-compose up -d # 執(zhí)行之后會拉取鏡像,并運(yùn)行容器。
[root@云盤 nextcloud]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3930bc2768d nextcloud:27.0.1 "/entrypoint.sh apac…" 14 hours ago Up 55 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp nextcloud
使用瀏覽器打開nextcloud,http://192.168.204:8080
設(shè)置管理員賬號,程序會自動創(chuàng)建庫表。但是如果報(bào)錯的話會提示你選擇哪些數(shù)據(jù)庫。
可能報(bào)錯的原因:
docker容器連不上MySQL數(shù)據(jù)庫,上面配置的MySQL數(shù)據(jù)庫沒有授權(quán)。
如果都沒問題,等幾分鐘就可以配置好了。
4、安裝onlyoffice
把docker-compose.yml改成下面內(nèi)容
[root@云盤 nextcloud]# cat docker-compose.yml
version: '3'
services:
only-office:
image: onlyoffice/documentserver
container_name: onlyoffice
ports:
- 8081:80
volumes:
- /data/nextcloud/onlyoffice:/var/www/onlyoffice/Data
- /data/nextcloud/onlyoffice/logs:/var/log/onlyoffice
restart: always
privileged: true
[root@云盤 nextcloud]# docker-compose up -d
[root@云盤 nextcloud]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
44be2cd04717 onlyoffice/documentserver "/app/ds/run-documen…" 14 hours ago Up 14 hours 443/tcp, 0.0.0.0:8081->80/tcp, :::8081->80/tcp onlyoffice
c3930bc2768d nextcloud:27.0.1 "/entrypoint.sh apac…" 14 hours ago Up 55 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp nextcloud
使用瀏覽器打開:http://192.168.2.204:8081 沒問題即可。
5、nextcloud接入onlyoffice
【應(yīng)用】
Ctrl+F搜索onlyoffice,下載并啟用
新版本需要輸入管理員密碼:
管理應(yīng)用:
服務(wù)器執(zhí)行生成密鑰的命令:否則會報(bào)系統(tǒng)內(nèi)部錯誤
[root@云盤 nextcloud]# docker exec 你onlyoffice容器ID /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
rCxhmpEAL05VqWyfbqyUh5p9j53RT4EM # 會輸出一個(gè)密鑰
添加成功之后我新增了下面哪些文件后綴,再往下拉點(diǎn)擊保存即可。
接入成功之后多了下面選項(xiàng):
6、接入onlyoffice可能會遇到的報(bào)錯:
1)報(bào)錯1:打開應(yīng)用轉(zhuǎn)了很久之后,打開之后發(fā)現(xiàn)找不到 onlyoffice應(yīng)用,無法下載和啟動。
點(diǎn)擊【個(gè)人設(shè)置】--【日志】看到日志報(bào)錯:
Could not connect to appstore: cURL error 28: Operation timed out after 60000 milliseconds with 3035136 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://apps.nextcloud.com/api/v1/apps.json
解決方法:
應(yīng)用要請求海外的的接口。要降超時(shí)時(shí)間調(diào)長一點(diǎn)。
修改文件:/data/nextcloud/nextcloud/lib/private/Installer.php timeout那行代碼
上面是將容器代碼掛在出來服務(wù)器的路徑,每個(gè)人的都不一樣!但是lib/private/Installer.php 是一樣的。
修改之后重啟容器。
如果改了超時(shí)時(shí)間之后還是一樣刷不出來,日志還是報(bào)超時(shí)的錯??梢郧謇頌g覽器緩存,先用瀏覽器打開這個(gè)應(yīng)用接口URL(https://apps.nextcloud.com/api/v1/apps.json)。
再重新登錄打開應(yīng)用。
$tempFile = $this->tempManager->getTemporaryFile('.tar.gz');
$timeout = $this->isCLI ? 0 : 360; # 默認(rèn)是120,改成360,如果不行再繼續(xù)調(diào)大,甚至要連VPN才可以獲取到onlyoffice應(yīng)用。
$client = $this->clientService->newClient();
接口請求異常,頁面是這樣的:無法加載出來其他的應(yīng)用
正常應(yīng)該是這樣的:
2)報(bào)錯2:nextcloud添加onlyoffice 報(bào)錯連接是發(fā)生異常 (文檔服務(wù)內(nèi)部發(fā)生異常: Invalid token)
解決:
打開onlyoffice server首頁,復(fù)制執(zhí)行這個(gè)命令,容器ID改成你的onlyoffice容器ID。文章來源:http://www.zghlxwxcb.cn/news/detail-709660.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-709660.html
到了這里,關(guān)于docker部署nextcloud+onlyoffice詳細(xì)教程【外置MySQL】的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!