51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【好玩儿的Docker项目】可能是目前全网最完整的Docker搭建Nextcloud教程(包含安全与设置警告报错信息的解决方法)

正文 {#正文}

以下是旧版的搭建和解决方法。

nextcloud的搭建,建议用最新的这个方法:

【好玩儿的Docker项目】Nextcloud All-in-One 全新搭建分享,拒绝繁琐配置,开箱即用!维护简单!

image-20220409160141010

  1. 介绍 {#1--介绍}

上次,咕咕在博客里分享了aapanel(宝塔)安装Nextcloud的教程------【好玩的项目】可能是史上最全的基于宝塔面板(海外版aapanel)的Nextcloud网盘搭建教程!(对于Nextcloud还不了解的小伙伴也可以看一下这篇文章)

当时不用Docker搭建的原因就是Nextcloud安装完成之后,

image-20220413154128369

这边的安全与设置警告会有很多提示信息,需要你一个一个优化,用Docker的话,会非常麻烦。而用aapanel(宝塔)安装,由于有一个可视化的面板,很多操作会容易很多。

然而,从文章发布之后,后台一直还是有小伙伴询问用Docker安装Nextcloud的事情,今天咕咕自己也稍微尝试了一下,基本上把安全与设置警告的信息都解决了,所以想着索性分享给大家。

相对于之前的安装方法,这个Docker版本的安装最大的两个特点:

  • 更新方便
  • 搬家、转移方便

今天用到的镜像来自Nextcloud官方镜像:https://hub.docker.com/_/nextcloud

支持多平台:linux/386、linux/amd64、linux/arm/v5

  1. 搭建环境 {#2--搭建环境}

  1. 搭建视频(~~还没拍~~ 待上传 = =) {#3--搭建视频-还没拍-待上传-----}

YouTube:https://youtu.be/twhyKoIBiVY

哔哩哔哩【高清版本可以点击去吐槽到B站观看】:

  1. 搭建方式 {#4--搭建方式}

4.1 搭建 {#4-1-搭建}

服务器初始设置,参考

新买了一台服务器"必须"要做的6件小事

【Docker系列】不用宝塔面板,小白一样可以玩转VPS服务器!

sudo -i # 切换到root用户

apt update -y  # 升级packages

`apt install wget curl sudo vim git  # Debian系统比较干净,安装常用的软件
`

创建一下安装的目录:

mkdir -p /root/data/docker_data/nextcloud

cd /root/data/docker_data/nextcloud

`nano docker-compose.yml
`

docker-compose.yml填入以下内容:

2022年5月12日更新版本,建议直接用这个,镜像比官方好用,可以省去后面的一些安全警告的配置等(记得NPM第一页那边,选https):

新版的config.php位置在

/root/data/docker_data/nextcloud/config/www/nextcloud/config/config.php

apps目录在这边:

/root/data/docker_data/nextcloud/config/www/nextcloud/apps

升级可以直接在后台升级(记得先备份一下数据稳妥一些):

image-20230107214512843

---
version: "2.1"
services:
  nextcloud:
    image: lscr.io/linuxserver/nextcloud:latest
    container_name: nextcloud
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - MYSQL_HOST=mysql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=nextcloud
    volumes:
      - /root/data/docker_data/nextcloud/config:/config
      - /root/data/docker_data/nextcloud/data:/data
    ports:
      - 4433:443
    restart: unless-stopped
`mysql:
image: mysql:8.0
container_name: nextcloud-db
restart: unless-stopped
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=nextcloud
- MYSQL_ROOT_PASSWORD=nextcloud
volumes:
- /root/data/docker_data/nextcloud/db:/var/lib/mysql
`

旧版:

version: "3"

services:
nextcloud:
container_name: nextcloud-app
image: nextcloud:latest
restart: unless-stopped
ports:
- 8080:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=nextcloud
volumes:
- /root/data/docker_data/nextcloud/data:/var/www/html


mysql:
image: mysql:8.0
container_name: nextcloud-db
restart: unless-stopped
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=nextcloud
- MYSQL_ROOT_PASSWORD=nextcloud
volumes:
- /root/data/docker_data/nextcloud/db:/var/lib/mysql


#volumes:


mysql:
======



nextcloud:
==========



没问题的话,ctrl+x退出,按y保存,enter确认。

运行:

docker-compose up -d

访问:http:服务ip:8080 即可。

注意:

1、不知道服务器IP,可以直接在命令行输入:curl ip.sb,会显示当前服务器的IP。

2、遇到访问不了的情况,请在宝塔面板的防火墙和服务商的后台防火墙里打开对应端口。

4.2 更新 {#4-2-更新}

cp -r /root/data/docker_data/nextcloud /root/data/docker_data/nextcloud.archive  # 万事先备份,以防万一

cd /root/data/docker_data/nextcloud  # 进入docker-compose所在的文件夹


docker-compose pull    # 拉取最新的镜像

`docker-compose up -d   # 重新更新当前镜像
`

利用Docker-compose搭建的应用,更新非常容易~

4.3 卸载 {#4-3-卸载}

cd /root/data/docker_data/nextcloud  # 进入docker-compose所在的文件夹

docker-compose down    # 停止容器,此时不会删除映射到本地的数据

`rm -rf /root/data/docker_data/nextcloud  # 完全删除映射到本地的数据
`

  1. 反向代理 {#5--反向代理}

实测不管是Nginx Proxy Manager还是aapanel,反向代理之后,均无法连接到远程云端(比如OneDrive、Google Drive)。

有成功的小伙伴欢迎评论区留言分享。

5.1 利用Nginx Proxy Manager {#5-1-利用Nginx-Proxy-Manager}

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析 视频教程

之后,登陆Nginx Proxy Manager(不会的看这个:安装Nginx Proxy Manager相关教程))

注意:

Nginx Proxy Manager(以下简称NPM)会用到80443端口,所以本机不能占用(比如原来就有Nginx)

直接丢几张图: image-20220413155337013 注意填写对应的域名端口,按文章来的话,应该是8080 image-20220403104353185 这边申请成功后,千万记得再次打开,然后把Force SSLHSTS Enable勾选上 image-20220413155409545

然后就可以用域名来安装访问了。

  1. 安全与设置警告解决方法 {#6--安全与设置警告解决方法}

6.1 通过不被信任的域名访问 {#6-1-通过不被信任的域名访问}

image-20220413204003769

如果你啥也没设置,第一步就会遇到这个问题。

我们需要按提示的要求进行设置:

cd /root/data/docker_data/nextcloud/data/config
`nano config.php
`

image-20220413204017210


加入:

1 => 'nx.gao.ee',

注意改成自己的域名。

ctrl+x 退出,按y保存,按 enter退出。

6.2 你的实例正生成不安全的URL {#6-2-你的实例正生成不安全的URL}

image-20220413204533787

nano config.php

加入这个:

'overwrite.cli.url' => 'https://nx.gao.ee',
'overwriteprotocol' => 'https',

image-20220413204506389

ctrl+x 退出,按y保存,按 enter退出。

6.3 您的安装没有设置默认的电话区域 {#6-3-您的安装没有设置默认的电话区域}

nano config.php

加入这个:

'default_phone_region' => 'CN',

image-20220413205015997

ctrl+x 退出,按y保存,按 enter退出。

6.4 未正确设置以解析...... {#6-4-未正确设置以解析--}

打开Nginx Proxy Manager,找到Advanced,加入这个

location = /.well-known/carddav {
      return 301 $scheme://$host:$server_port/remote.php/dav;
    }
location = /.well-known/caldav {
      return 301 $scheme://$host:$server_port/remote.php/dav;
    }

image-20220413211327697

保存即可。

6.5 php-imagick 模块不支持 SVG模块不支持SVG {#6-5-php-imagick-模块不支持-SVG模块不支持SVG}

虽然不影响正常使用,但强迫症使然,总想解决掉。

经过一番查找,发现这个和libmagickcore的某个组件有关,试着安装看看。

首先我们需要进入到容器内部,然后安装。

先来查看容器ID:

docker container ls

image-20220413205336044

进入Nextcloud容器:

docker exec -it 2ee2 bash  # 只要写前四位即可

安装:

apt update -y 
`apt install libmagickcore-6.q16-6-extra -y
`

然后退出即可

exit

注意:此方法修改,后续每次镜像更新,都需要进入容器重新安装

6.6 cron任务自动执行 {#6-6-cron任务自动执行}

*/5 * * * * root docker exec -u 1000 nextcloud php -f /config/www/nextcloud/cron.php 2>&1 /dev/null

注意nextcloud是容器名字,1000是id,是linuxserver容器的cron路径。

6.7 重启Nextcloud {#6-7-重启Nextcloud}

上述都搞定之后,最后重启Nextcloud:

cd /root/data/docker_data/nextcloud  # 进入docker-compose所在的文件夹
`docker-compose up -d   # 重新启动
`

错误全部解决。

  1. 结尾 {#7--结尾}

祝大家用得开心,有问题可以去GitHub提Issues,也可以在评论区互相交流探讨。

  1. 参考资料 {#8--参考资料}

https://github.com/NginxProxyManager/nginx-proxy-manager/issues/448

https://www.himstudy.net/%E8%A7%A3%E5%86%B3nextcloud%E6%8F%90%E7%A4%BAphp-imagick%E6%A8%A1%E5%9D%97%E4%B8%8D%E6%94%AF%E6%8C%81svg%E7%9A%84%E9%97%AE%E9%A2%98/

https://yeasy.gitbook.io/docker_practice/container/attach_exec

赞(0)
未经允许不得转载:工具盒子 » 【好玩儿的Docker项目】可能是目前全网最完整的Docker搭建Nextcloud教程(包含安全与设置警告报错信息的解决方法)