一、前言
Nextcloud 是一款开源的自主托管内容协作平台,提供文件同步与共享、在线办公协作、通讯工具等企业级功能。作为私有云解决方案的领先者,Nextcloud 让组织能够完全掌控自己的数据,避免依赖第三方云服务提供商
二、部署
需要先部署mysql
部署完成后配置远程用户
create user 'root'@'%' identified by '新密码';
grant all privileges on *.* to 'root'@'%' identified by '密码';
flush privileges;
创建nextcloud专用数据库
create database nextcloud;
关于nextcloud的镜像可参考以下dockerhub官网需要哪个版本自行选择
参考:https://hub.docker.com/_/nextcloud/tags
提前创建nextcloud数据存放目录
mkdir -p /data/nextcloud/data
此处/data目录我是单独挂载了一块数据盘
执行以下docker命令创建nextcloud容器
docker run -d --name nextcloud -v /data/nextcloud/data:/var/www/html -e MYSQL_HOST=xxx:3306 -e MYSQL_DATABASE=nextcloud -e MYSQL_USER=root -e MYSQL_PASSWORD=xxx -p 8080:80 nextcloud:31.0.4
查看容器是否启动
docker ps
通过ip+端口访问
修改nextcloud配置
vi /data/nextcloud/data/config/config.php
<?php
$CONFIG = array (
'htaccess.RewriteBase' => '/',
'memcache.local' => '\\OC\\Memcache\\APCu',
'apps_paths' =>
array (
0 =>
array (
'path' => '/var/www/html/apps',
'url' => '/apps',
'writable' => false,
),
1 =>
array (
'path' => '/var/www/html/custom_apps',
'url' => '/custom_apps',
'writable' => true,
),
),
'upgrade.disable-web' => true,
'instanceid' => 'oc9qfaoz3pa9',
'passwordsalt' => 'XCuG02pSniN4zPI25MPpGVj+bRL6Ts',
'secret' => '83Wn3LNvcgYw1Q8WcQ9X4QScRn19FwmigbRAPtKHjNtSE9AS',
'trusted_domains' =>
array (
0 => '10.1.60.129:8080',
1 => 'nextcloud.xxxx.com', #新增域名配置,不然使用域名访问会出现php报错
),
'datadirectory' => '/var/www/html/data',
'dbtype' => 'mysql',
'version' => '31.0.4.1',
'overwrite.cli.url' => 'http://10.1.60.129:8080',
'dbname' => 'nextcloud',
'dbhost' => '10.1.60.129:3306',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'root',
'dbpassword' => 'xxxx',
'installed' => true,
'default_language' => 'zh_CN', #新增默认语言配置,不然新增用户默认是英文
'default_locale' => 'zh', #新增默认语言配置,不然新增用户默认是英文
'skeletondirectory' => '', #新增目录配置,新增用户时不拷贝nextcloud自带的一些图片说明书等文件
);
修改完成后重启nextcloud容器服务
docker restart 2d51bc0b6daa
nextcloud默认不附带协同功能,需要额外部署onlyoffice服务