网址导航 在线音乐 免费电影 美女图片 笑话漫画 免费代理 电视影视 小说阅读

 找回密码
 注册
搜索
查看: 371|回复: 1

教程: 使用官方一键安装NextCloud,创建自己的私有云盘

[复制链接]
admin 发表于 2023-11-1 14:13:21 | 显示全部楼层 |阅读模式
相信很多人都听过 OwnCloud.Nextcloud 就是 OwnCloud 主创人员出走创立的新品牌 . 所以无论在使用还是界面体验上和 owncloud 非常像 .
国内网盘隐私问题堪忧 , 唯存的大容量百度盘又各种作死 . 而 Google Drive 又要梯子才能用 . 自己架设个私有云盘自娱自乐也蛮好的 .
NextCloud 社区有非常多人开发了很多应用 , 现在就有 RSS 阅读器 ,Markdown 编辑器 , 通讯录 , 脑图 , 日程安排等应用 , 如果有些额外的需求 , 它又不仅仅是一个私有云盘 . 唯一可惜的就是这些应用只支持 web 形式使用 .app 上目前还不支持 .
NextCloud 官网
一键安装包官网 :nextcloud snap : https://github.com/nextcloud/nextcloud-snap
NextCloud 一键安装方法
建议安装 Ubuntu 系统 , 因为官方一键包用的是 snap,centos 还未支持 . 所以 Ubuntu 是目前最简单的安装系统 .
sudo apt-get updatesudo apt-get install snapsudo apt-get install snapdsudo snap install nextcloud
OK, 搞定 . 简单吧 .
这时你可以使用服务器 IP 访问 , 如果你想用域名访问 , 只要把域名指到这个 IP 就可以 , 用域名访问的时候 ,nextcloud 就会询问你是否绑定这个域名 .
第一次访问 , 会提示你设置下管理员的帐号和密码
启用 SSL, 使用 https 访问sudo nextcloud.enable-https lets-encrypt
系统就会自动申请 lets-encrypt 证书并启用 . 也很简单吧 .
以后升级的话sudo snap refresh nextcloud关于数据备份
数据库的文件夹 :/var/snap/nextcloud/current/
数据库文件夹包含了 :
  • Apache, PHP, MySQL, and Redis logs
  • Keys and certificates
  • MySQL database
  • Redis database
  • Nextcloud config
  • Any Nextcloud apps installed by the user
文件保存的文件夹 :/var/snap/nextcloud/common/
文件夹包含了 :
  • Nextcloud data
  • Nextcloud logs
把数据库和文件的文件夹都备份就可以拉
我发现的一些问题 , 主要集中在挂载外部目录
  • 由于 snap 是容器 , 运行在沙箱中 , 好像无法挂载服务器上的本地目录
  • 不知道什么情况 , 扩展外部容量的时候 , 无法支持 FTP
  • 另外 ,Nextcloud 最新版本 13 已经无法挂载 google drive 了
不过我实际测试下 , 无论哪种挂载外部目录的方式 , 速度都很慢 … 没有外部挂载需求的朋友可以忽略这些问题拉 .

 楼主| admin 发表于 2023-11-1 14:27:24 | 显示全部楼层
一、NextCloud网盘安装教程
官网:
  • https://nextcloud.com/
注:本部分分享的是使用Nginx来搭建和运行NextCloud,属于手动安装系列,如果你觉得麻烦你也可以使用NextCloud官方的一键安装包。
1.1 准备条件
一台VPS主机。NextCloud是一个非常个性化需求的产品,如果使用虚拟主机搭建将会非常地麻烦,如果你想长期使用的话还是用VPS主机省事,毕竟现在的VPS主机也已经是白菜价了,一个域名。NextCloud可以使用IP访问,但是为了安全我们需要使用Https,所以你需要一个域名,不建议你使用免费域名,花个几十块钱就可以安心使用付费的域名了,毕竟免费的域名说不定哪天就删除了。
1.2 搭建Web环境
为了简单方便,你可以使用VPS主机控制面板,一键安装,一键部署,对于有能力的朋友建议使用LNMPOneinstack安装包,安全又可以节省资源。
这里以Oneinstack作为演示,首先在VPS主机一键安装好OneinStack。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重写规则。
  1. #(可选)添加如下header主要为了安全
  2. add_header X-Content-Type-Options nosniff;
  3. add_header X-XSS-Protection "1; mode=block";
  4. add_header X-Robots-Tag none;
  5. add_header X-Download-Options noopen;
  6. add_header X-Permitted-Cross-Domain-Policies none;
  7.         
  8. #(可选)为了支持user_webfinger app
  9. rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
  10. rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

  11. #这儿是为了支持日历和联系人,建议加上
  12. location = /.well-known/carddav {
  13.   return 301 $scheme://$host/remote.php/dav;
  14. }
  15. location = /.well-known/caldav {
  16.   return 301 $scheme://$host/remote.php/dav;
  17. }

  18. #设置上传文件的最大大小(还和php里的那个设置有关)
  19. client_max_body_size 512M;
  20. fastcgi_buffers 64 4K;

  21. #最主要的,将所有请求转发到index.php上
  22. location / {
  23.   rewrite ^ /index.php$uri;
  24. }

  25. #安全设置,禁止访问部分敏感内容
  26. location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
  27.   deny all;
  28. }
  29. location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
  30.   deny all;
  31. }

  32. #这部分吧,默认就有,不过有所不同,所以我合并了下,替换原来的就行
  33. location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
  34.   fastcgi_split_path_info ^(.+\.php)(/.*)$;
  35.   fastcgi_param PATH_INFO $fastcgi_path_info;
  36.   fastcgi_param modHeadersAvailable true;
  37.   fastcgi_param front_controller_active true;
  38.   fastcgi_pass unix:/dev/shm/php-cgi.sock;
  39.   fastcgi_intercept_errors on;
  40.   fastcgi_request_buffering off;
  41.   include fastcgi.conf;
  42. }

  43. #安全设置,禁止访问部分敏感内容
  44. location ~ ^/(?:updater|ocs-provider)(?:$|/) {
  45.   try_files $uri/ =404;
  46.   index index.php;
  47. }

  48. location ~ \.(?:css|js|woff|svg|gif)$ {
  49.   try_files $uri /index.php$uri$is_args$args;
  50.   add_header Cache-Control "public, max-age=15778463";
  51.   add_header X-Content-Type-Options nosniff;
  52.   add_header X-XSS-Protection "1; mode=block";
  53.   add_header X-Robots-Tag none;
  54.   add_header X-Download-Options noopen;
  55.   add_header X-Permitted-Cross-Domain-Policies none;
  56.   access_log off;
  57. }

  58. location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
  59.   try_files $uri /index.php$uri$is_args$args;
  60.   access_log off;
  61. }

  62. location = /robots.txt {
  63.   allow all;
  64.   log_not_found off;
  65.   access_log off;
  66. }

  67. gzip on;
  68. gzip_vary on;
  69. gzip_comp_level 4;
  70. gzip_min_length 256;
  71. gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
  72. 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
#下载
#赋予权限
chown -R www:www setup-nextcloud.php
接着访问网站 https://xx.xxx.com/setup-nextcloud.php ,点击 Next
安装在当前目录下,填
.

表示安装在根目录下。
一直点击下一步,直到安装完成,接着就是设置一个管理员账号和密码了。
建议在数据库连接处选择使用Mysql数据库,对于加快NextCloud访问是非常有效果的。
使用账号和密码登录NextCloud就可以看到以下成功的界面了。
二、NextCloud基本设置方法
为了可以更加顺畅地使用NextCloud,我们还需要对于NextCloud进行一定的设置,这些设置一些是必要的,例如安全方面;另一方面不是必须,例如性能提升这一块,看个人选择。
打开NextCloud设置页面,可以看到NextCloud自动给出的提醒。NextCloud设置提醒
2.1 PHP设置方面
PHP内存限制过小。提示:PHP 内存限制低于建议值 512MB。打开你的PHP.ini配置文件,
将memory_limit改为512M,重启PHP生效。
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就可以安装和配置好了:
安装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生效。

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高级设置教程3.1 SMTP邮件设置
配置好NextCloud的SMTP发信,可以在找回密码有用,因为一旦忘记了密码你可以使用邮箱找回。这里以Gmail的SMTP配置为例,其它的SMTP邮箱
3.2 挂载外部存储
对于有大量存储需求的朋友来说,可以启用NextCloud外部存储功能,你可以先启用NextCloud外部存储插件。
然后点击外部存储开始设置。此时你可能会遇到:“smbclient” 未安装。无法挂载 “SMB / CIFS”, “SMB / CIFS 使用 OC 登录信息”。请联系管理员安装。错误。
使用以下方法来安装并配置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你可以试试坚果云和又拍云:
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你可以试试坚果云和又拍云:
NextCloud挂载的外部存储有利于扩容。
3.3 查看编辑Office文档
NextCloud提供了不少的Office插件,可以帮助你在线查看和编辑Word、Excel、PPT等文档,不过此类的插件还需要额外一个自建Office服务,有能力的朋友可以折腾一下。
四、NextCloud基本使用用途4.1 相册
NextCloud的相册管理功能还是非常地强大。
NextCloud还提供非常多的相册插件,如果你是个相册控,一定会喜欢上。
4.2 观看视频
NextCloud自带了视频播放器,上传的是视频的话可以直接在线观看。挖站否测试时发现NextCloud的视频可以倍速播放,又多一个不充会员的理由了!
4.3 文档查看
NextCloud可以直接查看PDF文档,其它的文本、MD等都是可以的。
4.4 同步网盘
NextCloud同步功能是我最喜欢的了,有了NextCloud的同步网盘,可以弃用免费版本的坚果云、360企业网盘等了。下载NextCloud电脑PC端或者手机APP
添加你的网盘地址,然后会弹出是否授权访问。
同意之后,你就可以选择同步的内容了,以及设置本地同步文件夹了。
每次文件增加、删除、修改等操作都会实时反映到NextCloud网盘中。
你可以查看NextCloud网盘传输进度。
五、总结
NextCloud作为网盘来使用足以让你放弃那些广告又长又臭、速度限制在10KB以下同时又容易泄露隐私的X盘了,NextCloud的同步功能和在线视频、图片、文档浏览功能超过了大多数的免费网盘。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表