什么是Nextcloud
Nextcloud脱胎于ownCloud,是一个基于PHP的开源云存储方案。其对于私有云网盘来说有几点优势:
用户文件不存入数据库,恢复时无需重建
提供非常丰富的多平台客户端:Windows/Mac/Linux/Android/iOS,提供比较完善的即时备份/同步功能
提供webDAV接口,非常方便备份和映射
配合官方插件可以提供非常强悍的web端呈现,包括在线查看图片/编辑文档/播放视频
方便生成分享链接
使用Docker搭建Nextcloud
Docker
拉取镜像
docker pull nextcloud
安装Nextcloud
端口8001
和目录/docker/next
根据自己的需求来修改。
docker run -d --restart=always --privileged=true --name nextcloud -v /docker/nextcloud:/var/www/html -p 8001:80 nextcloud
docker-compose
创建docker-compose.yml
文件
version: "3"
services:
nextcloud:
ports:
- "8001:80"
volumes:
- /docker/nextcloud:/var/www/html
restart: always
privileged: true
image: nextcloud
container_name: nextcloud
然后使用命令docker-compose up -d
搭建
安装Nextcloud
准备工作
- 前往服务器控制台防火墙打开
8001
端口
- 然后访问 你的IP:8001 进入到Nextcloud安装界面

数据库的选择
不想折腾的话就选择默认的SQLite
,如果习惯用MySQL/MariaDB
的话也可以选择,但是我强烈推荐使用PostgreSQL
数据库,经过我的测试,Nextcloud使用PostgreSQL
比MySQL/MariaDB
快一些,有兴趣的话也可以自己测试一下。
输入管理员的用户名和密码点击配置好数据库,点击安装按钮进行安装
配置Redis(可选)
打开/config/config.php
,在memcache.local
下面添加两行
<?php
<?php
$CONFIG = array (
'htaccess.RewriteBase' => '/',
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'Redis的地址',
'port' => 6379,
'password' => 'Redis的密码',
),
配置后台任务(必须)
设置Cron
打开设置-管理-基本设置-后台任务-选择Cron

添加定时任务
crontab -e
输入i
进入编辑模式,在最后一行添加定时任务,然后按ESC
,输入:wq
保存退出
*/5 * * * * docker exec --user www-data nextcloud php /var/www/html/cron.php
重启定时任务服务使其立马生效
service crond restart
提高上传速度(重要)
docker exec -it -u 33 nextcloud /bin/bash
php occ config:app:set files max_chunk_size --value 0

成功提示:Config value max_chunk_size for app files set to 0
生成缩略图(可选)
使用时会发现,Nextcloud 上传的视频不能生成缩略图。其实 Nextcloud 本身支持生成视频缩略图,需要安装 ffmpeg 并修改配置
docker exec -it nextcloud bash
备份镜像源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
切换apt镜像源,不然太慢了
echo deb https://mirrors.bfsu.edu.cn/debian bullseye main > /etc/apt/sources.list
echo deb https://mirrors.bfsu.edu.cn/debian-security bullseye-security main >> /etc/apt/sources.list
echo deb https://mirrors.bfsu.edu.cn/debian bullseye-updates main >> /etc/apt/sources.list
apt-get update
apt update
apt install ffmpeg
修改配置文件
添加:
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\Image',
1 => 'OC\\Preview\\Movie',
2 => 'OC\\Preview\\TXT',
),
修改完配置文件记得重启Nextcloud容器来使其生效
docker restart nextcloud
至此,安装Nextcloud完成,你可以快乐的使用你的个人网盘了
升级到最新版本
docker exec --user www-data nextcloud php occ upgrade