专栏/【村雨组NAS】威联通Docker安装Nextcloud和优化

【村雨组NAS】威联通Docker安装Nextcloud和优化

2021年02月09日 11:22--浏览 · --喜欢 · --评论
粉丝:2.9万文章:185

威联通安装Nextcloud有三种:

1、docker安装

2、威联通app store自带Nextcloud

3、通过web方式安装

我推荐大家用docker方式安装,要求高的,可以稍微麻烦一点点用搭建网站的方式去安装。


步骤:

打开ContainerStation,如图

写了YAML就可以创建了,YAML文件在下面,自己copy修改即可


以下是UP自己写的YAML文件全文件,各位参照着改吧,理论上没问题,懂的可以增加或删除,不懂的修改红字即可

由于nextcloud一直更新,从18版本一直用过来,建议使用24版本,还算比较稳定,且兼容很多插件。


version: '3'

services:

  nextcloud:

    image: nextcloud:24.0-apache

    container_name: nextcloud_web

    depends_on:

      - redis

      - nextcloud-db

    environment:

      - UID=1000

      - GID=1000

      - UPLOAD_MAX_SIZE=10G

      - APC_SHM_SIZE=512M

      - OPCACHE_MEM_SIZE=512

      - CRON_PERIOD=15m

      - TZ=Aisa/Shanghai

      - DOMAIN=域名或本地IP都行

      - DB_TYPE=mysql

      - DB_NAME=数据库名字

      - DB_USER=数据库的用户名

      - DB_PASSWORD=数据库的密码

      - DB_HOST=nextcloud-db

    volumes:

       - /share/Container/nextcloud:/var/www/html

    expose:

      - 7009

    ports:

      - 7009:80

    restart: always

    networks:

      - nextcloud_network


  redis:

    image: redis:alpine

    container_name: redis

    restart: always

    expose:

      - 6479

    ports:

      - 6479:6379

    restart: always

    networks:

      - nextcloud_network



  nextcloud-db:

    image: mariadb

    restart: always

    expose:

      - 3316

    ports:

      - 3316:3306

    volumes:

      - /share/Container/nextcloud/mariadb:/var/lib/mysql

   - /share/Container/nextcloud/mariadbconfig:/etc/mysql

    environment:

      - MYSQL_DATABASE=数据库名

      - MYSQL_ROOT_PASSWORD=数据库root密码

      - MYSQL_USER=数据库用户名

      - MYSQL_PASSWORD=数据库密码

    networks:

      - nextcloud_network


networks:

  nextcloud_network:




然后ip:端口号访问,我这里是7009的端口号

优化

1、关掉不必要的app插件,例如我只启用这几项

2、mysql性能优化

较为麻烦,需要重启数据库,提升不明显

3、启用缓存

感觉提升不大,默认用了APCu,即便替换redis,提升也一般


成功之后

如果是英文,在右上角的设置中,如下图设置即可

无法新建用户的问题:

是因为你设置的密码太简单了,如何更改密码策略,还是右上角设置

Nextcloud 外部存储设置

Nextcloud非常厉害的一个点是支持外部存储,有什么用呢?

当你存储空间不够了,可以通过类似于挂载的方式扩充存储空间。或者可以作为数据转移的便捷途径。实现计算与存储分离。

实现方式也有两类:

第一种:

用Nextcloud自身提供的外部存储方式,通常是网络连接。如图:

对于家庭用户而言,更多是采用FTP、WebDAV的方式,通过网络拓展存储空间,或者进行数据迁移。

其中Nextcloud允许把其他服务器的Nextcloud挂载进来进行数据传输

S3、OpenStack对于普通家用可能不是很熟悉,不说了


第二种:本地

这种方式就完全类似于挂载。例如你可以把OSS、云盘等挂载到本机服务器上,然后所有数据都直接写入,这种方式的好处就是,哪怕你的本机只有32G存储空间,也能存100T的内容。


下面分别简单谈谈步骤

首先,要安装插件 external storage


其次,要添加外部存储。在“管理设置”下方的“存储设置”中。

我这里挂载本机NAS上的一个webdav文件夹试试看。上面输入ip+端口号,然后是文件夹的名字。下面输入账号是webdav,密码是NAS设置好的访问密码。

当前面绿色对勾,表示成功,否则表示失败或者黄色警告也是不正确的。

此时你可以在主页看到aa这个文件夹,但是你是不能上传文件的,需要在配置中加一段话,在Nextcloud安装目录下的config文件夹下的config.php中,最后的位置加入

还是那句话,威联通一定要下载text editor,方便直接修改配置文件

之后大功告成。


补充:Nextcloud开启smb

就是进入docker容器内部安装好smbclient即可,没有的可以从docker外部cp进去,方法多样,不详细说了



Nextcloud 外部存储设置 进阶方案

上面的方式,只适合各单个用户或者用户组扩容存储空间。这种方法的弊病是:共享

例如我挂载一个100T的空间,要么就我一个人能用,要么一群人同时用,毫无隐私可言。如果给一家子人同时扩容,还能保证隐私,互不干扰,只能通过这种方式实现。

但这种方式,无法通过docker方式实现,因为挂载空间无法映射进docker容器内部(不绝对),因此推荐用类似搭建网站的方式来实现:即php7.2、mysql、nginx或aphache这种方式

因为Nextcloud的默认存储路径全部都在data目录下,只要把data目录替换为自己的挂载路径即可。

挂载方式多种多样,这里不提了。假设你用某种方式挂在到了www目录下,假设为cloudmount的文件内

你只需要更改配置文件的一个地方即可:依然是config.php下,修改datadirectory后的路径为/var/www/cloudmount即可

这样,你所有用户的默认存储都是在你挂载的这块存储空间内。


在我之前提过“存储与计算”分离的思想,Nextcloud也是完全通过这种方式实现


Nextcloud视频无法预览

文件上传取消“块大小”限制

重建nextcloud索引,针对通过非nextcloud途径放入nextcloud目录的文件,因为上传太累了,直接移动速度快,但是没入库,这个命令可以快速在数据库做索引

它支持生成视频缩略图,需要安装 ffm­peg 并修改配置:


修改 /var/www/html/con­fig/con­fig.php 配置文件



补充

上传速度优化:https://blog.csdn.net/qq_28718329/article/details/112687699

优化mysql性能:https://www.jianshu.com/p/55fd5ddafb1a

https://qastack.cn/dba/29963/dynamic-change-to-innodb-flush-log-at-trx-commit


Nextcloud安装python3


依然是进入/bin/bash 中,执行命令


Nextcloud打包镜像

Nextcloud在一切必要的安装完成之后,可以打包成自制的镜像

暂时省略,后续补上


Nextcloud开启HTTPS

因为talk等视频通话、聊天等功能,必须用https才行


反向代理、申请证书就不提了,这里只说Nextcloud需要改的地方,依然是config.php文件

添加如下:




投诉或建议