手动安装NextCloud教程-免费开源的私有云存储网盘可播放图片音乐

NextCloud由原ownCloud联合创始人Frank Karlitschek创建的,继承原ownCloud的核心技术又有不少的创新。在功能上NextCloud和ownCloud差不多,甚至还要丰富一些,在用户使用体验方面,NextCloud安装与使用都非常地顺手,最重要的是NextCloud完全开源免费。

NextCloud不仅是一个私人云网盘平台,也支持多用户同步协作使用。NextCloud支持账号注册,可以为账号开启两步验证,以确保账号安全。同时,NextCloud对于公开分享的文件可以设置有效期,对于上传的视频、音乐、Office文档等直接支持在线预览和播放。

NextCloud还提供了上百种的免费应用和插件,这些NextCloud应用与插件可以将NextCloud打造成为一个在线文档共享与编辑平台、音乐与视频娱乐平台以及文件存储下载平台。当然,如果是自己手动安装的NextCloud的话,那么这些插件也得自己配置好环境才行。

手动安装NextCloud教程-免费开源私人云存储网盘可在线预览图片播放音乐

本篇文章就来分享一下手动安装NextCloud教程,更多的站长自建服务与平台,你还可以试试:

  1. Lsyncd搭建同步镜像-用Lsyncd实现本地和远程服务器之间实时同步
  2. VestaCP与WHMCS整合教程-实现自助开通虚拟主机销售主机空间产品
  3. ISPConfig与WHMCS整合方法-自动激活开通虚拟主机和管理空间用户

PS:2017年9月20日更新,觉得手动安装麻烦的朋友,可以使用一键安装的方法,参考:Nextcloud个人云存储绝佳选择:一键自动安装方法和云盘使用体验

一、LAMP安装NextCloud

NextCloud官网:

  1. https://nextcloud.com/

准备好LAMP环境。LAMP即Apache、MysqL或Mariadb、PHP环境,NextCloud官方推荐使用Apache运行NextCloud,自带了.htaccess规则。而Nginx的话还需要自己手动编写NextCloud的URL重写规则。推荐以下方法一键安装LAMP:

  1. Linux VPS建站工具LNMP 1.4安装与使用-SSL自动配置续期和多版本PHP支持
  2. OneinStack一键安装脚本-轻松部署Let’s Encrypt证书配置Https站点

LNMP 1.4和OneinStack都可以一键安装LAMP环境,这里我以OneinStack来作为操作演示,在安装OneinStack时选择组件时选择Apache即可,PHP建议使用7.0以上,数据库的话建议Mariadb。其它的缓存组件也可以安装。

NextCloud安装Apache

绑定好域名与添加SSL证书。OneinStack在添加网站时直接就可以添加SSL证书了,同时要求绑定的域名必须提前解析到服务器的IP上,这样才可以一键生成Lets免费证书。

NextCloud添加SSL证书

下载NextCloud程度包安装。到官网:https://nextcloud.com/install/#instructions-server,下载最新的程序包解压上传到网站的根目录。

NextCloud下载程序包

为NextCloud建立新的数据库。

NextCloud新建数据库

访问域名就会自动进入到NextCloud的安装页面了,填写你的管理员账号与密码,然后在下方设置好文件存储路径,最好与程序不要在同一个目录下。同时填入SQL数据库信息,完成安装。(点击放大)

NextCloud点击安装

完成后,你就可以登录到NextCloud后台,这就是NextCloud的用户管理界面。(点击放大)

NextCloud用户管理界面

二、LNMP安装NextCloud

准备LNMP环境和上面一样,只是在LNMP 1.4和OneinStack安装时选择Nginx环境即可,其它的组件都一样有选择性地安装。如果安装了Zend OPcache,可能在安装时会提示错误:“PHP 被设置为移除内联块, 这将导致多个核心应用无法访问

解决方法:修改php.ini中Opcache的参数进行修改,如果是Oneinstack的话需要在/usr/local/php/etc/php.d/ext-opcache.ini 中修改。找到此代码并改成:opcache.save_comments=1 ,因为默认是0,改完重启php-fpm就行。

编写URL地址重写规则。出现错误:No input file specified.,主要是Nginx还需要自己写重写规则,你可以将以下规则复制粘贴到/usr/local/nginx/conf/vhost/你的网站.conf,由于规则太多,你也可单独建立一个文件,然后在你的网站.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;
    }
    #设置上传文件的最大大小
    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;
    }

fileinfo\Memcached\Redis等都可以通过OneinStack一键安装。

NextCloud安装附加组件

NextCloud安全与性能优化:这种提示一般在NextCloud的服务器管理中可以看到,建议缓存类的直接安装一个即可,安装多了也没有什么用。

为了您服务的安全和性能, 请将所有设置配置正确. 我们将会进行一些自动化检查以帮助您完成这项工作. 详情请查看 “小提示” 部分及相关文档.

PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.

HTTP 请求头 “Strict-Transport-Security” 没有配置为至少 “15552000” 秒. 出于增强安全性考虑, 我们推荐按照安全提示中的说明启用 HSTS.

内存缓存未配置. 如果可用, 请配置 memcache 以增强性能. 更多信息请查看我们的文档.
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

NextCloud添加Memcached缓存。修改程序目录下的config目录中的config.php文件,在配置文件中添加如下,这个是多个Memcached实例,单个自己改:

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Memcached',
'memcached_servers' => array(
     array('localhost', 11211),
     array('server1.example.com', 11211),
     array('server2.example.com', 11211),
     ),

NextCloud添加Redis缓存。在配置文件中添加如下,这个是通过TCP连接的

'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
      ),

还有性能更好的UNIX连接

'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => '/var/run/redis/redis.sock',
     'port' => 0,
     'dbindex' => 0,
     'password' => 'secret',
     'timeout' => 1.5,
      ),

同时,官方还推荐加入如下,来用于存储文件锁

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

Nginx运行NextCloud一切正常。

NextCloud运行正常

三、NextCloud添加应用

NextCloud提供了丰富了内置应用,并且这些应用可以直接在NextCloud的后台下载并安装,有点像我们的Wordpress插件一样直接安装。这些介绍几个有用的NextCloud插件,相信大家一定会用到。

SMTP发信与限制最大上传文件。这个直接在NextCloud的后台设置中就可以设置选项,SMTP可以让我们调用第三方的发信服务来发送NextCloud的邮件,自带的PHP发信也可以,但是基本上会被各大邮箱判定为垃圾邮件。

NextCloud发信设置

数据存储加密与外挂存储。首先到NextCloud应用中激活Default encryption module、External storage support这两个插件。

NextCloud存储加密

启用数据加密需要谨慎:因为数据一旦加密被启用, 之后上传到服务器的所有文件都将服务器上加密,只有当启用状态的加密模块支持解密并且所有前提都满足时 (例如: 设定恢复密钥) 才能解除加密。请注意, 加密会增加文件大小,单独的加密不能保证系统的安全性,你需要同时设置恢复密钥。

NextCloud启用文件加密

外挂存储主要是可以让NextCloud通过SMB / CIFS 登录 OC 的方式挂载第三方的存储应用,启用这个插件有些麻烦,可能提示:没有安装 “smbclient”. 安装命令:apt-get install smbclient和apt-get install php-smbclient。

NextCloud外挂存储

四、总结

至于选择Apache还是Nginx来运行NextCloud主要还是取决你对Nginx或者Apache的熟悉程度,LNMP 1.4和OneinStack对Nginx都做了很好了优化,Http 2.0、SSL证书还有缓存组件和PHP函数都可以一键安装与配置,省去了不少的麻烦。

NextCloud私有云

NextCloud的图片预览、音乐视频在线播放等基本功能都是没有问题了,在使用NextCloud应用过程中倒是遇到了不少的问题。首要的问题就是NextCloud的应用配置比较难,例如Office文档插件、RSS在线阅读器插件等,都需要自己手动配置好服务器环境。

文章出自:挖站否 https://wzfou.com/nextcloud-install/,部分内容参考自:zrj96  版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

关于站长(Qi),8年前经常混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,愿意将自己经验与心得分享出来,与大家共勉。

32 个评论

  • qiuyming 回复

    2017年9月14日 at 下午10:45

    赶上qi更新第一个评论,哈哈哈
    其实我自己基本都存在本地的,要不然好几个100多G的硬盘用不了了
    其实腾讯云的OSS加上 腾讯云官方的管理系统也可以当网盘 smile

    • Qi 回复

      2017年9月15日 at 上午8:46

      OSS流量贵不?NextCloud提供的WebDAV还是挺方便的。

      • 流癣多 回复

        2017年9月23日 at 上午8:49

        看起来很好,但是我不玩了,前几天接到电话喊我备$%#案,备了以后还页脚链接,点进去名字都露出来了,太恶心了,工@#信部site也看到名字,我可不是暴露狂玩直播的异类,我也有仇人,有那么一天,名字加上住址在网络上呼为诈###骗犯,那就爽了

        • Qi 回复

          2017年9月23日 at 上午10:08

          所以说没有个人隐私了。。 sweat

  • john 回复

    2017年9月14日 at 下午11:40

    放本地NAS

    • Qi 回复

      2017年9月15日 at 上午8:43

      NextCloud也可以在NAS上用。 eg

  • 李毅哲 回复

    2017年9月15日 at 上午8:16

    NextCloud配置Memcached缓存效果显著吗?
    目前在WordPress配置Memcached感觉性能提升不少,
    特别是一些已经超卖成石头盘的VPS效果更明显。
    另外OneinStack确实挺方便,很容易将环境建构起来。 clap

    • Qi 回复

      2017年9月15日 at 上午8:42

      有效果,尤其适合一些内存小的VPS,对提升NextCloud后台打开速度有效果。博主有试过Redis缓存没?我发现内存小的VPS用了之后,当内存占满后就容易造成IO阻塞。

      • 李毅哲 回复

        2017年9月15日 at 下午4:57

        未在小内存VPS测试过Redis缓存,
        但Redis缓存是将物件缓存在SSD上,
        请求缓存还是要从SSD提取至内存才能使用,内存剩馀大小还是挺重要的,
        另外有的vps内存耗尽会使用空间置换,一样会造成SSD的I/O性能下降

        • Qi 回复

          2017年9月15日 at 下午9:52

          是的,所以像阿里云这样的IO,1GB居然跑WP也会卡。第一次遇到。

          • 李毅哲 回复

            2017年9月15日 at 下午10:27

            看来阿里国际版超卖挺严重的…CN2拿来反代勉强可以
            建站就算了…

            • Qi 回复

              2017年9月17日 at 下午12:39

              是的,性能真的不行,可能也就是线路好一些。

              • mxyweb 回复

                2017年9月17日 at 下午2:12

                系列2和系列3已经好了很多,I/O低的只是系列1。另外系列1的CPU也不是很好。

                • Qi 回复

                  2017年9月18日 at 下午10:16

                  系列2和系列3不能一键购买,太贵了。

  • uei 回复

    2017年9月15日 at 上午8:31

    NextCloud我安装在了Raspberry上了。

  • 小z博客 回复

    2017年9月15日 at 下午2:14

    顺便安利下seafile也不错,写了一个一键脚本:https://www.xiaoz.me/archives/8480

    • Qi 回复

      2017年9月15日 at 下午9:53

      不错,我去看看。 clap

  • 钛客志 回复

    2017年9月15日 at 下午8:57

    本地5T存储,不够就再花钱加容量

    • Qi 回复

      2017年9月15日 at 下午9:51

      厉害了。这么大。

      • 钛客志 回复

        2017年9月15日 at 下午11:13

        我觉得为了重要数据是值得这么做的,再也不相信云存储了,当然云存储方便分享这个优点除外

  • 居正 回复

    2017年9月15日 at 下午10:01

    nextcloud与HHVM兼容性如何?
    (用习惯了KODExplorer的我 giggle

    • Qi 回复

      2017年9月17日 at 下午12:39

      HHVM不是很好。

      • dingpengyu 回复

        2017年9月21日 at 上午7:56

        在安装的时候出现这个错误:Composer autoloader not found, unable to continue. Check the folder “3rdparty”. Running “git submodule update –init” will initialize the git submodule that handles the subfolder “3rdparty”.

        • Qi 回复

          2017年9月21日 at 下午12:30

          是路径错误的问题,用这个方法就可以解决:https://github.com/owncloud/core/issues/19167

  • doublez 回复

    2017年11月9日 at 上午11:57

    请问 为啥我的nextcloud搭建后 一切都用起正常,就是不能预览图片和在线播发音乐视频?
    用的Nextcloud 12.0.3目前最新版

    • Qi 回复

      2017年11月9日 at 下午2:14

      是不是有什么JS或者CSS无法加载?

      • doublez 回复

        2017年11月9日 at 下午3:56

        页面没有报错

      • doublez 回复

        2017年11月9日 at 下午4:00

        点击图片、视频都是下载,以前用owncloud 点击就是预览和播放,点击txt文件也不编辑也是变成了下载,不知道怎么回事,难道是有些插件没有启用? 我装好是默认状态,什么都没改

        • Qi 回复

          2017年11月10日 at 上午9:12

          应该是默认的文本、图片等浏览插件没有启用。

  • breakplus 回复

    2017年11月19日 at 下午1:43

    安装完后访问域名出现:
    该网页无法正常运作

    http://www.syu.date 目前无法处理此请求。
    HTTP ERROR 503

    这是什么情况

  • breakplus 回复

    2017年11月19日 at 下午1:46

    自动安装出现:
    error: cannot perform the following tasks:
    – Run configure hook of “nextcloud” snap if present (run hook “configure”: cannot perform readlinkat() on the mount namespace file descriptor of the init process: Permission denied)

    这是什么情况 在Vultr上用ubuntu 14.0搭建的

  • sora 回复

    2018年4月19日 at 上午10:24

    nextcloud怎么让别人注册啊,我在后台找了一下没看到设置选项。是需要安装什么插件吗?

发表评论

Login

欢迎!请登录你的账号。

记住我 忘记密码?

还未注册 注册

Lost Password

Register

返回顶部