最近在考虑在PVE上使用开源云盘,开源NAS,整合成一个完整的解决方案,目标是可以在生产系统上使用。结合桌面云,提供云盘和NAS功能,统一用户账号,就能提供一个完整的解决方案,还是比较有价值的。

总体思路:

    1、在PVE上创建OMV虚拟机(OpenMediaVault)

    2、将PVE上的NFS盘提供给OMV作为存储资源池;

    3、在PVE上安装nextcloud (LAMP结构)

    


一、安装OMV  

    首先,下载OMV安装镜像,下载地址:

    https://nchc.dl.sourceforge.net/project/openmediavault/5.3.9/openmediavault_5.3.9-amd64.iso

    安装过程和安装debian系统差不多,OMV的底层就是debian系统;

    安装完成后,直接使用IP地址就可以登陆。

    web初始账号密码是:admin/openmediavault

    image.png


    OMV中可以集成提供docker,需要安装OMV-Extra 。

    安装OMV-Extra可以参考: https://www.jianshu.com/p/4a0aa7e48515

    另外,OMV还提供很多插件,提供相应的增强功能。

    本来打算直接使用docker安装NextCloud,但是在安装过程中才想到,生产系统,NextCloud还是独立安装会比较好一些,虽然会慢一点,但是后面的稳定性以及后面的故障定位和维护都比较靠谱。

    登陆后的界面:

image.png



二、安装NextCloud

    参考官网的安装手册: 

    https://docs.nextcloud.com/server/stable/admin_manual/installation/

    NextCloud是安装在LAMP(linux+apache+Mysql+PHP)环境中的应用程序,所以需要准备LAMP环境,对操作系统没有要求。我这里选择安装ubuntu,我安装的时候最新版本是ubuntu20(https://mirrors.nju.edu.cn/ubuntu-releases/20.04/ubuntu-20.04-live-server-amd64.iso)

    

    为了好记,设置ubuntu操作系统用户名密码: nextcloud/nextcloud

安装完成之后,要求重启:

image.png




手工安装:

本想通过snap的方式进行安装,但是由于强国网络的原因安装过程碰到一些问题,果断放弃。最后采用最原始和可靠的方法,手工安装!

手工安装,参考:

https://docs.nextcloud.com/server/stable/admin_manual/installation/example_ubuntu.html

注意ubuntu20对应的php默认版本是7.4 :
apt-get install apache2 mariadb-server libapache2-mod-php7.4
apt-get install php7.4-gd php7.4-json php7.4-mysql php7.4-curl php7.4-mbstring
apt-get install php7.4-intl php-imagick php7.4-xml php7.4-zip

安装完成之后,检查apache2、php和maridb是否安装正常:

1、检查apache2: 
systemctl status apache2

image.png


2、检查mariadb:
systemctl status mariadb
3、检查php:
php -m


下载nextcloud软件包:nextcloud-18.0.4.zip ,下载地址是:

https://download.nextcloud.com/server/releases/nextcloud-18.0.4.zip

下载完成之后上传到服务器/var/www/目录上,解压:

cd /var/www && unzip nextcloud-18.0.4.zip

配置apache,以下内容,参考:

https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html

# vi /etc/apache2/sites-available/nextcloud.conf
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
  Require all granted
  AllowOverride All
  Options FollowSymLinks MultiViews
  Satisfy Any
  <IfModule mod_dav.c>
    Dav off
  </IfModule>
</Directory>

root@nextcloud:/var/www# a2ensite nextcloud.conf
Enabling site nextcloud.
To activate the new configuration, you need to run:
  systemctl reload apache2
root@nextcloud:/var/www# systemctl reload apache2
root@nextcloud:/var/www# a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2
root@nextcloud:/var/www# systemctl reload apache2
root@nextcloud:/var/www# 
root@nextcloud:/var/www# a2enmod headers
Enabling module headers.
To activate the new configuration, you need to run:
  systemctl restart apache2
root@nextcloud:/var/www# a2enmod env
Module env already enabled
root@nextcloud:/var/www# a2enmod dir
Module dir already enabled
root@nextcloud:/var/www# a2enmod mime
Module mime already enabled
root@nextcloud:/var/www# 

# chown -R www-data:www-data /var/www/nextcloud/
# systemctl restart apache2


接下来,就可以看到NextCloud的初始化安装界面了:


image.png


初始化安装nextcloud:

创建数据库:

create database nextcloud character set utf8; 
create user nextcloud@localhost identified by 'nextcloud'; 
grant all privileges on nextcloud.* to nextcloud@localhost identified by 'nextcloud'; 
flush privileges; 
exit;

将数据库相关信息填入:

image.png


输入管理员账号密码admin/admin:

image.png

最后点击“完成”,系统开始初始化安装:

image.png


过了几分钟,完成:

image.png


image.png

有100个自定义的应用,比较厉害,可以点进去看看。

image.png

后面可以根据需要,自己再慢慢研究。

image.png


安装windows桌面客户端:

客户端程序下载地址:

https://download.nextcloud.com/desktop/releases/Windows/latest

首次运行客户端,需要设置服务端地址:

http://192.168.170.140/nextcloud

image.png

输入上面这个地址之后,会弹出浏览器,以admin账号登陆鉴权,鉴权确认后,客户端后面就可以正常使用了。

客户端 上需要添加同步文件夹,这里我在G盘新建“云盘”目录,并作为本地文件夹的同步目录,这样,会自动同步nextcloud服务端的相应目录文件内容到本地。

在同步状态下,对“云盘”目录下文件的任何操作,都会同步到nextcloud服务器端。

image.png



安装nextcloud Talk

https://apps.nextcloud.com/apps/spreed

找到相应版本的nextcloud talk版本,比如我的nextcloud版本是18,对应的就是8.0.9版本:

image.png

下载下来的文件名称是: spreed-8.0.9.tar.gz

将这个文件上传到nextcloud服务器的apps目录: /var/www/nextcloud/apps/ ,并解压

tar xzvf spreed-8.0.9.tar.gz

在目录 /var/www/nextcloud/中执行:

sudo -u www-data php occ app:install spreed

sudo -u www-data php occ app:enable spreed

image.png

安装手机客户端:

安卓nextcloud客户端下载:

https://f-droid.org/zh_Hans/packages/com.nextcloud.client/

安卓nextcloud talk客户端下载:

https://f-droid.org/en/packages/com.nextcloud.talk2/


苹果手机可以直接在APP store里面下载安装,直接搜索: nextcloud ,可以找到nextcloud和nextcloud talk 

幕后花絮:

安装ubuntu20的时候,发现ubuntu居然可以选择各种snap安装,其中就包括NextCloud的snap安装。

本来想使用snap来安装和管理nextcloud。熟悉一下snap的简单用法:

参考官网教程:https://snapcraft.io/docs/getting-started

snap list  #列出软件包

snap find nextcloud     #查找nextcloud

snap install nextcloud    #安装nextcloud,默认的channel是stable

snap install --channel=edge nextcloud  #指定channel


snap info nextcloud    #查看nextcloud信息


由于强国网络的原因,访问不了snap相关的安装源,在执行:snap install nextcloud  命令的时候提示网络错误,果断放弃。



 曾考虑过在debian10上安装NextCloud,   debian10的下载地址:

    https://cdimage.debian.org/debian-cd/current/amd64/bt-dvd/

参考的相关网站:

安装OMV-Extra: https://www.jianshu.com/p/4a0aa7e48515

安装nextcloud:https://docs.nextcloud.com/server/18/admin_manual/installation/installation_wizard.html

你的开源 NAS 系统: https://zhuanlan.zhihu.com/p/138254689

OpenMediaVault:https://www.openmediavault.org/  OMV

搭建家庭 NAS 服务器有什么好方案?  https://www.zhihu.com/question/21359049

nextcloud官网:  https://nextcloud.com/

seafile官网:https://www.seafile.com/home/

LDAP+nextcloud: https://www.orgleaf.com/2839.html