OMV4安装NextCloud-openmediavault4

发布时间:2021年05月18日 阅读:221 次

概述

NextCloud 作为一款免费的多端同步软件,以界面友好,功能齐全,开源免费,被大家熟悉。有了 NextCloud 你可以在自己的计算机上共享任何文件或文件夹,并将它们与 NextCloud 服务器同步。当你把文件放入共享目录,这些文件就会立即同步到 NextCloud 服务器以及所有相关联的 NextCloud / ownCloud 桌面客户端、Android 客户端或 iOS 客户端。

NextCloud 源代码完全开放,任何个人或企业都可以自由获取并在开源许可协议的约束下免费使用,对于需要专业支持的用户可以购买 NextCloud 官方的专业版订阅服务。

NextCloud 虽然好但我们OMV没有现成的插件,所有很多玩家不知道怎么部署,其部署过程中出现很多无法使用的问题,今天给大家详细介绍下OMV下直接安装NextCloud 并使用,而不是docker模式运行。

特色功能

  1. 安全的音频和视频通话

  2. 日历和联系人管理

  3. 外部存储与安全加密

  4. 通过 Collabora 实现文档在线预览和编辑

  5. 支持安装 APP 扩展更多功能

  6. 工作流管理

安装

NextCloud 官方提供了多种安装方式

clipboard.png

  1. 下载完整包到指定位置安装

  2. 通过web方式安装(仅下载一个php文件,文件小且方便,版本变化快,本教程发布时已更新到16版本,不在适合OMV4.X)

我们选用第一种方式

根据介绍

clipboard.png

在 older versions or major releases 里下载 Nextcloud 15。

安装之前的准备工作。

  1. 生成SSL证书

  2. 安装nginx 服务器和mysql插件,并配置php环境

  3. 下载nextcloud 15文件包。下载地址: Nextcloud 15

  4. 配置nextcloud

  5. 下载手机app

1.生成SSL证书

OMV自带了证书功能,所以我们直接使用自带的创建一个证书即可,我直接创建了25年的,这样就不会过期,长度4096b,其他随便填了。

clipboard.png

 创建完成

clipboard.png

 注意:如果你要绑定一个https域名,那么就要去网上申请与这个域名匹配的SSL,然后导入。

2.安装nginx 服务器并配置php环境

这个插件要先安装OMV-Extras 插件库后,才能继续安装,没有安装的同学可以看这里 安装OMV-Extras 插件库。

点开左边系统—插,在右边输入nginx 搜索到 openmediavault-nginx ,勾选安装。

clipboard.png

 安装完成我们就能在服务中看到Nginx(websites)

bucket size 选择128 ——–勾选启用—–然后切换到 Pools添加php运行池

clipboard.png

我们加个池nextcloud,然后是用户名和组的选择,我这里就用默认的用户www-data 组用user,当然你也可以去 访问控制权限—用户—添加新用户和添加新用户组,最后指定自定义用户名。

clipboard.png

继续往下,在扩展选项中添加下面的内容,最后保存。

env[PATH] = /usr/local/bin:/usr/bin:/bin

clipboard.png

 

2.1 添加服务器

到服务器标签添加一个新的web服务.

这里目录就选我前面创建的那个nextcloud目录,端口可以看到我的已经变成灰色了,因为我后面一部选择了only ssl,只用ssl了不用普通的端口了,如果你不选只用ssl的话记得把这个端口改掉,80端口和omv的端口会冲突。

clipboard.png

开启SSL,然后端口可以自己修改下,证书就是前面创建的证书。

clipboard.png

开始php,然后PHP-FPM Pool池就选择NextCloud,然后开启php相关项。

clipboard.png

扩展选项粘贴以下代码(很多小伙伴安装后无法访问,就是这里的代码没有配置好),以下代码在OMV4.X验证通过,其他版本略有不同。

set $root_path "/var/www/nextcloud";
    root $root_path;
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;

fastcgi_hide_header X-Powered-By;
client_max_body_size 10G;
fastcgi_buffers 64 4K;
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location / {
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass $socket;
}
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag "none";
add_header X-Download-Options "noopen";
add_header X-Permitted-Cross-Domain-Policies "none";
add_header Referrer-Policy "no-referrer";
access_log off;
}

安装MySQL插件

NextCloud需要用到MySQL数据库,所以我们安装MySQL的插件

clipboard.png

服务下面mysql配置启用,然后启用后台管理。好了之后我们就可以点击上面“显示”按钮来网页管理数据库。查看详细的MySQL插件介绍 

clipboard.png

重设下MySQL密码

默认的MySQL用户名是root,密码为空,我们设置一个安全一点,点击“重置密码”按钮,设置一个安全的密码。

clipboard.png

然后点击“显示” 按钮,然后输入(账号:omvadmin 密码:)登陆数据库。

clipboard.png

创建nextcloud数据库

我们新建一个数据库专门用于nextcloud

clipboard.png
clipboard.png

创建完成

clipboard.png

安装PHP模块

默认的OMV php环境缺少以下模块,需要单独安装。

使用ssh工具,登陆服务器,然后执行下面的命令

apt install -y php7.0-gd php7.0-curl php7.0-zip libzip4
systemctl restart php7.0-fpm.service

4.上传并安装NextCloud

将上面下载的nextcloud包,上传到nextcloud目录,然后解压。

在浏览器里输入http://nas的ip:端口,如果你启用了SSL,那么直接输入https://nas的ip.来进行安装,我的是这个,点击打开新的窗口。

clipboard.png

出现安装提示:

clipboard.png

用户名和密码自己设置,数据库目录可以是默认安装目录或者指定一个其他目录,数据库选择mysql/MariaDB,然后输入数据库用户名/密码/数据库名/localhost(数据库服务器地址,该项默认就好),我这里就输入上面创建好的数据库用户:omvadmin,密码我这里是:123456,数据库名:nextcloud ,地址:默认

点击“安装完成”,等待几分钟后,会出现以后画面表示安装成功。

clipboard.png

 默认的界面

clipboard.png

 5.设置外网访问

如果我们需要在外网访问的化,可以直接在nginx服务管理里将端口改为名称

clipboard.png

填写你购买的域名,然后保存。(记得域名要指向你NAS服务器的IP,而且NAS有外网IP)或者通过路由器映射(本章不在改篇教程范围,可以查看本站其他教程获取帮助。)

(如果以上文章你看了还是不懂,捐赠版的朋友可以下载一键安装包)


Tag:
相关文章

发表评论:取消回复