Rat's

使用NextCloud来搭建我们的私有网盘、并结合Redis优化性能
说明:现在越来越多云盘都相继宣布关闭,差不多都去用百度云盘了,而我们手上有些比如小姐姐电影之类传上去就会被和谐,于...
扫描右侧二维码阅读全文
15
2017/06

使用NextCloud来搭建我们的私有网盘、并结合Redis优化性能

说明:现在越来越多云盘都相继宣布关闭,差不多都去用百度云盘了,而我们手上有些比如小姐姐电影之类传上去就会被和谐,于是我们有必要自己搭建个私有云来存这些资源了,也安全,这里推荐NextCloud,一款继ownCloud之后,又一个很不错的私有云。

简介

Nextcloud是一套用于创建和使用文件托管服务的客户端-服务器软件。它在功能上类似于Dropbox,虽然Nextcloud是免费的和开源的,允许任何人在私人服务器上安装和操作它。与Dropbox等专有服务相反,开放架构允许以应用程序的形式向服务器添加附加功能。

虽然Nextcloud作为ownCloud的衍生版本,在其基础上做了许多改进,但有一些差异。ownCloud提供了一个开源社区版本,但它们还提供了一个专有的企业版,具有附加功能和支持订阅。相比之下,Nextcloud是完全开源的。

截图

请输入图片描述
请输入图片描述

更新

【2019年6月28日】
更新教程,替换为宝塔安装,并新增Redis缓存优化方案以提高NextCloud运行速度。

安装

如果不喜欢折腾的,可参考1分钟就能安装完成的方法:Snap安装教程Docker安装教程

环境要求:PHP 5.6 +MysqlNginxRedis(非必需)。

1、安装宝塔

#CentOS系统
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

安装完成后,进入面板,点击左侧软件商店,然后安装PHP 5.6+MysqlNginxRedis

然后点击左侧软件商店-PHP设置-安装扩展,安装Redis模块即可

接下来点击左侧网站-添加站点,填好域名和Mysql数据库用户名和密码信息。

2、上传Nextcloud程序
Nextcloud程序下载地址→传送门,目前为16.0.1版本,使用命令:

#进入站点根目录,自行修改路径
cd /www/wwwroot/www.moerats.com
#下载最新版程序,记得随时将链接换成最新版的下载地址
wget https://download.nextcloud.com/server/releases/nextcloud-16.0.1.zip
#解压并移动到根目录
unzip nextcloud-*.zip && rm -rf nextcloud-*.zip index.html
mv nextcloud/* . && rm -rf nextcloud
chown -R www:www ./

3、伪静态设置
点击站点设置-伪静态设置,添加以下代码:

location / {
    rewrite ^ /index.php$request_uri;
}

location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
    deny all;
}

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

location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
    try_files $uri/ =404;
    index index.php;
}

location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
    try_files $uri /index.php$request_uri;
    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;
}

location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
    try_files $uri /index.php$request_uri;
    access_log off;
}

4、新增Redis缓存配置
使用宝塔点击左侧文件,找到网站根目录的config/config.php配置文件,在后面新增以下代码:

'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' => [
     'host' => '127.0.0.1',
     'port' => 6379,
],

5、安装Nextcloud
请输入图片描述
打开网址,选择Mysql数据库,填上数据库信息,并设置管理员账号和密码后,点击安装即可!到这里属于我们的私有云盘Nextcloud就搭建好了。

最后该网盘挺不错的,特别是更新到15.0版本之后,不过加载速度在国内还是慢点,官方推荐的是用APCu缓存,相比较Redis更快,不过博主一般只在小内存上跑,所以就直接使用了Redis缓存。如果你的内存很大,可以看下APCu使用文档→传送门,配置也不难。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 07 月 15 日 12 : 21 AM

发表评论 取消回复

87 条评论

  1. hh

    这个地方错了
    memcache.locking 应当改为memcache.local
    官方文档
    https://docs.nextcloud.com/server/13/admin_manual/configuration_server/caching_configuration.html

  2. 小白

    如果集成Redis哨兵模式的集群。如何配置呢?

  3. Exploit-db

    Redis可以使用其他云购买的然后整合进去吗

    1. Rat's
      @Exploit-db

      理论上可以,把127.0.0.1改外网地址

  4. 720

    楼主你好,我已经使用APCu缓存了,redis缓存配置好以后就不能访问nextcloud了,

  5. Ruth_less001

    你好,我的nextcloud在网页配置完用户密码数据库后跳转到http://172.19.195.43/index.php/apps/files/,页面显示重定向次数过多,网络里显示files 302 报错,我该如何解决(nginx1.18.0,MDB10.+,php7.3.14)

  6. 望风飘

    你好 请问我提示这个问题怎么办?PHP 无法访问 /dev/urandom, 由于安全原因, 这是强烈不推荐的. 更多信息请查看我们的文档.

  7. 清疚

    请问根目录没有找到config怎么办

    1. Rat's
      @清疚

      解压出来的nextcloud文件夹没这个吗?

  8. 毛瞌羊

    Server stopped accepting new streams before this stream was established 用了一段时间,出现这个问题 博主遇到过吗

    1. Rat's
      @毛瞌羊

      没遇到过,所以无法帮助到你。

  9. 毛瞌羊

    Server stopped accepting new streams before this stream was established

  10. 浮生若梦
    该评论仅登录用户及评论双方可见
    1. Rat's
      @浮生若梦

      网站根目录。

      1. 浮生若梦
        @Rat's
        该评论仅登录用户及评论双方可见
        1. Rat's
          @浮生若梦

          可以,如果你想外网访问,就需要内网穿透了