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. 风萧

    博主! 我这个出现了:
    PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv("PATH") 测试时仅返回空结果.
    Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm.
    PHP 模块 'fileinfo' 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.
    一些文件没有通过完整性检查。了解如何解决该问题请查看我们的 文档。(无效文件列表… / 重新扫描…)
    您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或都你可以将数据目录移出 Web 服务器文档根目录。
    PHP 无法访问 /dev/urandom,出于安全原因这是强烈不推荐的。更多信息请参见文档。
    HTTP 请求头 "Strict-Transport-Security" 没有配置为至少 “15552000” 秒。出于增强安全性考虑,我们推荐按照 安全提示中的说明启用HSTS。
    内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。
    PHP 的组件 OPcache 没有正确配置。 为了提供更好的性能,我们建议在 php.ini中使用下列设置:
    opcache.enable=1
    opcache.enable_cli=1
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=10000
    opcache.memory_consumption=128
    opcache.save_comments=1
    opcache.revalidate_freq=1
    请仔细检查安装指南,并检查日志中是否有错误或警告。

    我该怎么操作呢!小白 ,求指点

    1. Rat's
      @风萧

      安装的是宝塔还是lnmp?宝塔的话,直接点击左侧软件商店-找到安装的PHP版本,点击设置-安装拓展-安装fileinfo就可以了,如果是lnmp,那建议你参考该文章:https://www.moerats.com/archives/841/,里面有写fileinfo安装方法。

      1. 风萧
        @Rat's

        安装的是宝塔, 按照大神的操作,设置了一下, 好像还有问题。 不过好像不影响我使用 ,不管了 。 不过还是谢谢大神

  2. wcxchen

    请问大神,我手动往nextcloud挂载的盘里加入了一些文件和目录,但是再次打开nextclod时,却不显示,怎么办

    1. Rat's
      @wcxchen

      说明操作的姿势不对。

  3. cllllllion

    请问小姐姐电影是什么东西

    1. Rat's
      @cllllllion

      就是年纪小点的妹子拍的动画片

  4. 某某

    大神好,我的nextcloud是采用snap方式一键安装的,现在我想在服务器上新建个二级目录test,用来挂自己的网页,用https://cloud.bai.com/test 来访问,请教需要怎么操作?如果新增一个web站点http://cz.bai.com要怎么操做?求指导,找遍全中国没看见教程

    1. Rat's
      @某某

      建议别用二级目录建站,直接用二级域名建站,然后也别用snap,端口会冲突,直接用宝塔,然后常规方式安装Nextcloud和网站

  5. Keac

    博主,我用宝塔搭建好之后网页访问没有问题,但是App里登录提示:访问禁止 CSRF check failed 这个问题要怎么解决呢 感谢

    1. Rat's
      @Keac

      这个没遇到过,给个问题链接你参考下,https://help.nextcloud.com/t/nextcloud-talk-ios-app-access-forbidden-csrf-check-failed

      1. Keac
        @Rat's

        那后台删除用户 该用户的文件也会一起删除么

        1. Rat's
          @Keac

          都一起删除,包括用户文件

  6. cader

    您好,博主。 请问有没有一个基于OSS这类对象存储,适用于企业内部文件管理系统呢

    1. Rat's
      @cader

      发过的文章太多了,有时候连自己曾经发过的啥都忘了,你可以自己找找看。

  7. haig233

    博主出个一键安装脚本吧,最好能运行在512M的小内存服务器上emmmmm。。。。
    希望博主可以满足我的愿望吧
    另外如果可以的话服务器软件可以使用caddy吧,照顾下内存小的机子qwq

    1. Rat's
      @haig233

      这个弄一键脚本完全没必要啊,你要是想快速安装,可以用snap和docker方法,参考:https://www.moerats.com/archives/429/和https://www.moerats.com/archives/420/。

  8. 飞花如梦

    博主,博主,体验了kodexplorer的demo很喜欢,可以介绍下么

    1. Rat's
      @飞花如梦

      这个很久前就发过了,https://www.moerats.com/archives/339/。

  9. youngfree

    你好,我的vps搭建了wordpress,我域名(xx.com)设置了两个DNS解析记录,一个是www到服务器IP--word press页面,另一个是netdisk到服务器IP--next cloud)通过www.xx.com能成功进入word press页面,但是通过netdisk.xx.com进入不了nextcloud安装界面),提示“内部服务器错误”,请问怎么设置?
    vps是基于apache的,存在两个站点一个是www.xx.com目录是/data/wwwroot/www.xx.com(存放的是wordpress解压后的文件),另一个是netdisk.xx.com目录是/data/wwwroot/netdisk.xx.com(其目录下放的是nextcloud解压后的文件),也在phpadmin中建立了wordpress跟nextcloud数据库的。

    1. Rat's
      @youngfree

      内部服务器错误与很多有关,比如数据库啥的,具体情况未知,做站的话,建议用Nginx。

  10. 小明

    请问博主,在已经搭建web服务的vps上还能再搭next cloud吗?如果我把nextcloud放站点根目录,那我搭的网站就打不开了,如果放根目录的一个文件夹里,如 /home/wwwroot/default/nc/ 那么它又会提示不能写入数据库……

    1. Rat's
      @小明

      可以的,你可以再解析个二级域名到服务器搭建,比如nc.xx.com域名。