前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NextCloud安装和使用图文教程

NextCloud安装和使用图文教程

作者头像
用户8832582
修改2021-11-05 09:22:38
48.7K0
修改2021-11-05 09:22:38
举报
文章被收录于专栏:编程随想编程随想编程随想

一、NextCloud网盘安装教程

官网:

  1. https://nextcloud.com/

注:本部分分享的是使用Nginx来搭建和运行NextCloud,属于手动安装系列,如果你觉得麻烦你也可以使用NextCloud官方的一键安装包。参考:Nextcloud个人云存储绝佳选择:一键自动安装方法和云盘使用体验

1.1 准备条件

一台VPS主机。NextCloud是一个非常个性化需求的产品,如果使用虚拟主机搭建将会非常地麻烦,如果你想长期使用的话还是用VPS主机省事,毕竟现在的VPS主机也已经是白菜价了,参考:VPS主机排行榜单

当然也有朋友想在自己的树莓派上安装Nextcloud,参考:

1.树莓派Raspberry Pi安装NextCloud教程-自建家庭私有云局域网共享

一个域名。NextCloud可以使用IP访问,但是为了安全我们需要使用Https,所以你需要一个域名,不建议你使用免费域名,花个几十块钱就可以安心使用付费的域名了,毕竟免费的域名说不定哪天就删除了。参考:域名服务

1.2 搭建Web环境

为了简单方便,你可以使用VPS主机控制面板,一键安装,一键部署,参考:服务器控制面板榜单。对于有能力的朋友建议使用LNMPOneinstack安装包,安全又可以节省资源。参考:Oneinstack从入门到精通

这里以Oneinstack作为演示,首先在VPS主机一键安装好OneinStack,教程:OneinStack一键安装脚本-轻松部署Let’s Encrypt证书配置Https站点。NextCloud对于系统的要求如下:

操作系统Operating System

Ubuntu 18.04 LTS (recommended) Red Hat Enterprise Linux 8 (recommended) Debian 10 (Buster) SUSE Linux Enterprise Server 15 openSUSE Leap 42.1+ CentOS 8

数据库Database

MySQL 5.7+ or MariaDB 10.2+ (recommended) Oracle Database 11g (only as part of an enterprise subscription) PostgreSQL 9.5/9.6/10/11 SQLite (only recommended for testing and minimal-instances)

Webserver

Apache 2.4 with mod_php or php-fpm (recommended) nginx with php-fpm

PHP Runtime

7.2 7.3 (recommended) 7.4 (recommended)

内存Memory

Memory requirements for running a Nextcloud server are greatly variable, depending on the numbers of users, apps, files and volume of server activity.Nextcloud needs a minimum of 128MB RAM, and we recommend a minimum of 512MB.

对于数据库的额外要求Database requirements for MySQL / MariaDB

The following is currently required if you’re running Nextcloud together with a MySQL / MariaDB database:

InnoDB storage engine (MyISAM is not supported) “READ COMMITED” transaction isolation level Disabled or BINLOG_FORMAT = ROW configured Binary Logging) For Emoji (UTF8 4-byte) support

1.3 Nginx重写规则

对于使用Oneinstack安装NextCloud的话,你可以直接在创建网站时选择重写规则时选择NextCloud,Oneinstack会自动创建好NextCloud的Nginx重写规则。

NextCloud Nginx重写规则
NextCloud Nginx重写规则

对于没有创建Nextcloud重写规则的朋友也不用担心你可以直接下载重写规则,然后在你的原有的Nginx配置文件中加一句即可:include /usr/local/nginx/conf/rewrite/nextcloud.conf;

下载:https://do.wzfou.net/wzfou/nextcloud.conf

以下为代码备份,以便不时之需。

#(可选)添加如下header主要为了安全

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;

#(可选)为了支持user_webfinger app

rewrite ^/.well-known/host-meta /public.php?service=host-meta last;

rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

#这儿是为了支持日历和联系人,建议加上

location = /.well-known/carddav {

return 301 $scheme://$host/remote.php/dav;

}

location = /.well-known/caldav {

return 301 $scheme://$host/remote.php/dav;

}

#设置上传文件的最大大小(还和php里的那个设置有关)

client_max_body_size 512M;

fastcgi_buffers 64 4K;

#最主要的,将所有请求转发到index.php上

location / {

rewrite ^ /index.php$uri;

}

#安全设置,禁止访问部分敏感内容

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {

deny all;

}

location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {

deny all;

}

#这部分吧,默认就有,不过有所不同,所以我合并了下,替换原来的就行

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {

fastcgi_split_path_info ^(.+\.php)(/.*)$;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param modHeadersAvailable true;

fastcgi_param front_controller_active true;

fastcgi_pass unix:/dev/shm/php-cgi.sock;

fastcgi_intercept_errors on;

fastcgi_request_buffering off;

include fastcgi.conf;

}

#安全设置,禁止访问部分敏感内容

location ~ ^/(?:updater|ocs-provider)(?:$|/) {

try_files $uri/ =404;

index index.php;

}

location ~ \.(?:css|js|woff|svg|gif)$ {

try_files $uri /index.php$uri$is_args$args;

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;

access_log off;

}

location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {

try_files $uri /index.php$uri$is_args$args;

access_log off;

}

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}

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;

1.4 安装过程

下载官方一键安装脚本:

#进入网站根目录

cd /data/wwwroot/xx.wzfou.com

#下载

wget https://download.nextcloud.com/server/installer/setup-nextcloud.php

#赋予权限

chown -R www:www setup-nextcloud.php

接着访问网站 https://xx.wzfou.com/setup-nextcloud.php ,点击 Next

NextCloud上传安装
NextCloud上传安装

安装在当前目录下,填 .表示安装在根目录下。

NextCloud安装目录
NextCloud安装目录

一直点击下一步,直到安装完成,接着就是设置一个管理员账号和密码了。

NextCloud设置账号和密码
NextCloud设置账号和密码

建议在数据库连接处选择使用Mysql数据库,对于加快NextCloud访问是非常有效果的。

NextCloud数据库
NextCloud数据库

使用账号和密码登录NextCloud就可以看到以下成功的界面了。(点击放大)

NextCloud安装成功
NextCloud安装成功

二、NextCloud基本设置方法

为了可以更加顺畅地使用NextCloud,我们还需要对于NextCloud进行一定的设置,这些设置一些是必要的,例如安全方面;另一方面不是必须,例如性能提升这一块,看个人选择。

NextCloud基本设置
NextCloud基本设置

打开NextCloud设置页面,可以看到NextCloud自动给出的提醒。

NextCloud设置提醒
NextCloud设置提醒

2.1 PHP设置方面

PHP内存限制过小。提示:PHP 内存限制低于建议值 512MB。打开你的PHP.ini配置文件,

NextCloud打开配置文件
NextCloud打开配置文件

将memory_limit改为512M,重启PHP生效。

NextCloud调整内存设置
NextCloud调整内存设置

2.2 PHP缓存设置

为了提供NextCloud性能,官方建议使用缓存,NextCloud添加Memcached缓存。修改程序目录下的config目录中的config.php文件,在配置文件中添加如下:

'memcache.local' => '\OC\Memcache\Redis',

'redis' => array(

'host' => 'localhost',

'port' => 6379,

),

'memcache.locking' => '\OC\Memcache\Redis',

2.3 缺乏各种模块

对于Zend OPcache、xcache、apcu、eAccelerator、ionCube、ZendGuardLoader 、Memcached、Redis、imap、fileinfo等,直接使用Oneinstack就可以安装和配置好了:

NextCloud手动安装
NextCloud手动安装

安装gmp模块。由于Oneinstack没有gmp模块,我们需要自己手动安装。执行以下命令安装:

sudo apt-get install m4

#sudo apt-get install gmp-devel

sudo apt-get install libgmp-dev

#yum -y install gmp-devel

cd ~/oneinstack/src

tar xzf php-7.4.9.tar.gz

#tar xzf php-7.2.10.tar.gz

cd php-7.2.10/ext/gmp

#cd php-7.4.9/ext/gmp

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

#看到以下表示成功了

#Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/

#Installing header files: /usr/local/php/include/php/

#最后生成配置文件

echo 'extension=gmp.so' > /usr/local/php/etc/php.d/gmp.ini

重启PHP生效。

NextCloud安装组件成功
NextCloud安装组件成功

2.4 Nginx配置方面

如果出现以下错误:

HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒. 为了提高安全性,建议参照security tips ↗中的说明启用HSTS. HTTP 头 “Referrer-Policy” 未设置成 “no-referrer”,”no-referrer-when-downgrade”,”strict-origin”,”strict-origin-when-cross-origin” 或 “same-origin”。这会泄露更多的信息。请查阅 W3C 建议↗。

打开你的Nginx配置文件,添加以下规则:

add_header Strict-Transport-Security max-age=15768000;

add_header X-Frame-Options 'SAMEORIGIN';

add_header Referrer-Policy "no-referrer";

重启PHP和Nginx,刷新一下,你就可以看到NextCloud配置完成了。

NextCloud完成配置
NextCloud完成配置

三、NextCloud高级设置教程

3.1 SMTP邮件设置

配置好NextCloud的SMTP发信,可以在找回密码有用,因为一旦忘记了密码你可以使用邮箱找回。这里以Gmail的SMTP配置为例,其它的SMTP邮箱你可以参考:国内外企业(域名)邮箱汇总

NextCloud配置邮件
NextCloud配置邮件

配置好测试一下SMTP发信,看看是不是成功了。

3.2 挂载外部存储

对于有大量存储需求的朋友来说,可以启用NextCloud外部存储功能,你可以先启用NextCloud外部存储插件。

NextCloud启用外部存储插件
NextCloud启用外部存储插件

然后点击外部存储开始设置。此时你可能会遇到:“smbclient” 未安装。无法挂载 “SMB / CIFS”, “SMB / CIFS 使用 OC 登录信息”。请联系管理员安装。错误。

NextCloud提示存储错误
NextCloud提示存储错误

使用以下方法来安装并配置PHP SMB。

apt install libsmbclient libsmbclient-dev

apt install smbclient

apt install php-pear

pecl install smbclient

Build process completed successfully

Installing '/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/smbclient.so'

install ok: channel://pecl.php.net/smbclient-1.0.0

configuration option "php_ini" is not set to php.ini location

You should add "extension=smbclient.so" to php.ini

#对于oneinstack,输出配置文件

echo 'extension=smbclient.so' > /usr/local/php/etc/php.d/smb.ini

lnmp默认不开启外部 添加插件,需要修改php.ini,定位到proc_open位置,然后将默认的disable改成enable。然后按照上面的方法安装好smbclient.so,最后在你的php.ini配置文件中添加好smbclient.so路径即可。

进入LNMP的src目录

cd /root/lnmp1.6/src

找到你的PHP压缩包并解压

tar -xjf php-7.2.22.tar.bz2

编译安装

进入gmp扩展所在的目录

cd /root/lnmp1.6/src/php-7.2.22/ext/gmp

执行phpize,得到configure程序

/usr/local/php/bin/phpize

运行configure

./configure -with-php-config=/usr/local/php/bin/php-config

编译安装,安装完成会在最后一行输出安装位置

make && make install

重启LNMP,进入上一步得到的位置目录,看见gmp.so表示安装成功

lnmp restart

cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718

编辑php.ini文件

vi /usr/local/php/etc/php.ini

在文件最后加上下面这行代码,然后重启LNMP即可

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/gmp.so

lnmp restart

NextCloud外部存储支持Amazon S3、FTP、WebDAV、SFTP、SMB / CIFS等方式,对于FTP和WebDAV你可以试试坚果云和又拍云:

1.巧用又拍云FTP和坚果云WebDAV-打造个人文件备份和数据云存储

NextCloud挂载的外部存储有利于扩容。

NextCloud挂载网盘
NextCloud挂载网盘

3.3 查看编辑Office文档

NextCloud提供了不少的Office插件,可以帮助你在线查看和编辑Word、Excel、PPT等文档,不过此类的插件还需要额外一个自建Office服务,有能力的朋友可以折腾一下。

NextCloud查看编辑Office文档
NextCloud查看编辑Office文档

四、NextCloud基本使用用途

4.1 相册

NextCloud的相册管理功能还是非常地强大。

NextCloud相册管理功能
NextCloud相册管理功能

NextCloud还提供非常多的相册插件,如果你是个相册控,一定会喜欢上。

NextCloud查看图片
NextCloud查看图片

4.2 观看视频

NextCloud自带了视频播放器,上传的是视频的话可以直接在线观看。挖站否测试时发现NextCloud的视频可以倍速播放,又多一个不充会员的理由了!

NextCloud观看视频
NextCloud观看视频

4.3 文档查看

NextCloud可以直接查看PDF文档,其它的文本、MD等都是可以的。

NextCloud文档浏览
NextCloud文档浏览

4.4 同步网盘

NextCloud同步功能是我最喜欢的了,有了NextCloud的同步网盘,可以弃用免费版本的坚果云、360企业网盘等了。下载NextCloud电脑PC端或者手机APP。

NextCloud同步网盘
NextCloud同步网盘

添加你的网盘地址,然后会弹出是否授权访问。

NextCloud同步网盘授权访问
NextCloud同步网盘授权访问

同意之后,你就可以选择同步的内容了,以及设置本地同步文件夹了。

NextCloud同步网盘选择本地文件夹
NextCloud同步网盘选择本地文件夹

每次文件增加、删除、修改等操作都会实时反映到NextCloud网盘中。

NextCloud同步网盘变动提示
NextCloud同步网盘变动提示

你可以查看NextCloud网盘传输进度。

NextCloud同步网盘传输进度
NextCloud同步网盘传输进度

五、总结

NextCloud作为网盘来使用足以让你放弃那些广告又长又臭、速度限制在10KB以下同时又容易泄露隐私的X盘了,NextCloud的同步功能和在线视频、图片、文档浏览功能超过了大多数的免费网盘。

PS:关于在VPS主机上打包备份的教程,你可以参考:一个命令让Linux定时打包备份指定目录文件夹并同步备份到各大网盘

NextCloud作为私有云存储完成是没有问题,唯一需要担心的就是备份和安全性,解决的办法就是做好服务器日常备份功能,安全这一块要求高的话可以开启服务器加密和端对端加密

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、NextCloud网盘安装教程
    • 1.1 准备条件
      • 1.2 搭建Web环境
        • 1.3 Nginx重写规则
          • 1.4 安装过程
          • 二、NextCloud基本设置方法
            • 2.1 PHP设置方面
              • 2.2 PHP缓存设置
                • 2.3 缺乏各种模块
                  • 2.4 Nginx配置方面
                  • 三、NextCloud高级设置教程
                    • 3.1 SMTP邮件设置
                      • 3.2 挂载外部存储
                        • 3.3 查看编辑Office文档
                        • 四、NextCloud基本使用用途
                          • 4.1 相册
                            • 4.2 观看视频
                              • 4.3 文档查看
                                • 4.4 同步网盘
                                • 五、总结
                                相关产品与服务
                                云数据库 MariaDB
                                腾讯云数据库 MariaDB(TencentDB for MariaDB) 让您轻松在云端部署、使用 MariaDB 数据库。MariaDB 是在 MySQL 版权被 Oracle 收购后,由 MySQL 创始人 Monty 创立,其版权授予了“MariaDB基金会(非营利性组织)”以保证 MariaDB 永远开源,良好的开源策略,是企业级应用的最优选择,主流开源社区系统/软件的数据库系统,均已默认配置 MariaDB。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档