正文:

NextCloud云盘程序,一个高自由度、高扩展性、免费的云盘程序!

教程仍然有许多不完善的地方,后续慢慢补齐!也同时欢迎大家补充问题!

环境要求:

服务器系统:Ubuntu 18.04LTS 64位

环境:安装LNMP / PHP 7.0+ / MySQL 5.5+

推荐使用PHP7.2版本,宝塔版的PHP7.3的zip模块有bug

注意事项:MySQL5.5 建议安装内存小于1GB的;MySQL 5.6 建议安装内存大于1GB;MySQL 5.7 建议安装内存大于2GB!

nextcloud有两种安装方式,一种是源码上传,一种是php页面自动安装。

源码上传到网站目录后打开网页就有最新版的nextcloud可以配置。

自动安装的则是16.0.3版本的nextcloud,不过搭建完毕后可以自行升级!不过更新又有坑需要填,请看我下一篇文章。

两种安装方式各分千秋,源码安装检测出来的安全问题可能会多一点,而自动安装虽然问题会少一两条但是版本比较旧,请各位自己抉择。

如果配置过CloudFlare的SSL证书的用户请注意:新开站点必须开启SSL证书才可以访问!把以前的证书和密钥复制进去即可!

本教程搭建环境为:LNMP / MySQL 8 / PHP 7.2 (其他是宝塔默认选项)

以下是源码安装方法:

上传NextCloud源码:

官网下载地址:nextcloud

1.登陆宝塔,点击–>网站–>添加网站–>填写相关信息–>提交–>完成

2.点击–>文件–>进去自己刚刚创建的站点目录下–>删除里面的全部文件–>上传刚刚下载的源码–>解压–>此时会在此目录新出来一个文件夹–>更改权限为www用户组–>完成

3.点击–>网站–>选择刚刚创建的网站–>设置–>网站目录–>网站目录选择刚刚解压出来源码的根目录–>保存–>完成

4.此时就可以访问刚刚所创建的站点了,输入自己配置的域名即可打开!

5.打开程序,程序要求设置一个账号和密码(自己设置一个),然后点击–>创建数据库–>选择有MySQL的选项–>输入刚刚宝塔里创建数据库的表、用户名和密码–>完成

6.此时即可访问NextCloud了!

配置Nextcloud程序:

1.检测问题

点击–>设置(齿轮)–>概览–>耐心等待几分钟,程序自动会列出所有问题的–>完成

2.安装扩展

先打开宝塔面板,打开–>软件管理–>PHP 7.2(选择自己所用的版本)–>设置–>安装扩展–>安装以下插件:

3.PHP内存限制低于建议值512MB

问题解决方案:

点击–>PHP 7.2–>设置–>配置修改–>把memory_limit选项值写为:1024MB(512MB以上即可,512MB也行)–>保存–>完成

4.PHP的OPcache模块未载入

进入–>配置文件–>找到1904行代码附近–>把默认配置删除–>复制如下代码进去–>保存–>完成

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

配置完成PHP后一定要点击–>服务–>重载配置–>重启–>完成

此时刷新NextCloud界面会少一些错误!

安装完成后有些错需要修复

5.getenv(”PATH”) 这个问题的解决方案:

点击–>软件管理–>PHP 7.2–>服务–>停止–>完成

点击–>文件–>进入如下目录:

/www/server/php/73/etc/php-fpm.conf

打开–>php-fpm.conf–>在最后一行添加如下代码:

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

然后点击–>保存–>软件管理–>PHP7.2–>服务–>重启–>完成

6.您的数据目录和文件可以从互联网直接访问。.htaccess文件不起作用。

打开–>网站–>设置–>伪静态–>把以下代码复制进去–>保存–>完成

location
~ ^/(data|config|.ht|db_structure.xml|README) {
deny all;
}

7.内存缓存未配置(两种解决方案)

方案一:配置Redis(低内存用户)

打开以下文件:

/www/wwwroot/sky.hkjbase.com/nextcloud/config/config.php

在倒数第二行添加如下代码:

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

完成后点击保存即可。

方案二:配置APCu(高内存用户)

打开以下文件:

/www/wwwroot/sky.hkjbase.com/nextcloud/config/config.php

在倒数第二行添加如下代码:

'memcache.local' => '\OC\Memcache\APCu'

8.您的网页服务器未正确设置以解析/.well-known/……………(两个错的解决方案)

点击–>网站–>设置–>配置文件–>如图所示加入以下代码即可

    rewrite /.well-known/carddav /remote.php/dav permanent;
    rewrite /.well-known/caldav /remote.php/dav permanent;

9.一些文件没有通过完整性检查。

把网站目录的404文件删除,然后更改.user.ini为以下内容

mbstring.func_overload=0
always_populate_raw_post_data=-1
default_charset='UTF-8'
output_buffering=0

完成操作后点击重新扫描。

10.通过 HTTP 访问网站不安全。强烈建议您将服务器设置成 HTTPS 协议

这里我使用的是cloudflare的ssl,服务器在国内的建议使用宝塔自己的ssl,我使用cloudflare是因为我的服务器在国外,回程很差,使用了cloudflare后效果很好,所以干脆ssl也使用cloudflare。

①先去cloudflare选择全程ssl(默认半程)

②然后创建证书

③所有选项默认的即可,或者你看看是否需要更改什么。

④将Origin CertificatePrivate key 分别粘贴至证书(PEM格式)密钥(KEY)

⑤勾选强制HTTPS
⑥刷新,问题解决

11.HTTP的请求头 "Strict-Transport-Security" 未设置为至少 "15552000" 秒。

这是在解决完HTTPS的问题后冒出来的问题

解决方法还是修改nextcloud绑定的网站配置文件,添加一行header信息

add_header Strict-Transport-Security "max-age=63072000;";


至此,所有检查已通过

最后修改:2020 年 01 月 22 日 11 : 33 AM
如果觉得我的文章对你有用,请随意赞赏