Centos搭建Nextcloud私有云(宝塔)

尝试搭建私有云,了解到了SeafileNextcloud,都搭建出来使用了一番本篇记录了Nextcloud搭建过程。

Nextcloud 安装方式很多,可以参考如下两种

  • snap一键安装snap暂不支持CentosUbuntu可以,支持的系统列表见 https://snapcraft.io/

  • 手动搭建LAMP 环境 + Nextcloud 安装包(本文采用)

环境:CentOS 宝塔 LAMP

宝塔LAMP

安装宝塔面板

参照:宝塔官网(简单好用的Linux/Windows服务器管理面板)

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

完成后输出管理页面地址以及账户、密码

宝塔管理员帐号密码

安装lamp

浏览器打开宝塔面板,首次登陆就会推荐安装lanmp 注意php7.0

lamp

创建站点,安装Nextcloud

创建站点

宝塔面板-网站-添加站点(同时添加数据库)

  • 站点名称 pan.test.com
  • 根目录 /www/wwwroot/pan.test.com
  • 数据库名 august
  • 数据库用户名 august
  • 数据库密码 augustd2

上传Nextcloud

宝塔-文件-网站根目录/www/wwroot/pan.test.com/

清空网站根目录下所有文件,包括.htacess .user.ini 404.html index.html

官方下载页面下载最新版,上传至网站根目录,目前为nextcloud-12.0.5.zip

解压缩

此时目录结构为/www/wwroot/pan.test.com/nextcloud

nextcloud目录下所有文件剪切粘贴至网站根目录下/www/wwroot/pan.test.com/,并删除nextcloud空目录

安装nextcloud

  • 浏览器访问域名 pan.test.com
  • 创建管理员帐号 自己创建
  • 数据库目录   不用管
  • 配置数据库   MySQL/MariaDB
  • 数据库     创建站点时创建的数据库

nextcloud

安装完成后跳转到如下页面说明成功

nextcloud

安全及设置警告

安装完成后,页面顶端提示:代码完整性检查出现异常, 点击查看详细信息…点击进入安全及设置警告。

一堆问题,逐条解决。

重要的先提一下: 所有关于php设置修改完之后,重载php-fpm-70服务才生效

nextcloud

安装php扩展

这个步骤是从下面逐条解决汇总出来的,省得我截很多图,所以放在最上面了。

  • 安装PHP扩展 宝塔-软件管理-php-7.0设置-安装扩展
  • 安装如下PHP扩展: fileinfo opcache redis
  • 下图中PATH_INFO默认已经安装了,不用管

lamp

fileinfo

  • 在PHP管理中添加fileinfo扩展,参照上文安装php扩展

  • 宝塔-软件管理-php-7.0设置-安装扩展-fileinfo

PHP 的组件 OPcache 没有正确配置

  • 在PHP管理中添加opcache扩展,参照上文安装php扩展

  • 宝塔-软件管理-php-7.0设置-配置文件(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

lamp

内存缓存未配置

  • 在PHP管理中添加redis扩展,参照上文安装php扩展
  • 修改网站根目录下/config/config.php
  • 宝塔-文件-/www/wwwroot/pan.test.com/config/config.php-编辑
  • 在最后一个);之前添加如下字段
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
      ),

lamp

您正在通过 HTTP 访问该站点

宝塔-网站-pan.test.com-设置-SSL-let's Encrypt-申请

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

参数解释如下,自行判读,如果跟我一样的话就是多了一个nextcloud-12.0.5.zip

INVALID_HASH   #错误的文件,需要使用正确的替换
EXTRA_FILE    #多余的文件,需要删除
EXCEPTION     #错误信息

管理设置

基本设置-后台任务

官方描述
You can schedule cron jobs in three ways – using AJAX, Webcron, or cron. The default method is to use AJAX. However, the recommended method is to use cron.
三种方式管理后台任务,默认为AJAX,但是推荐用 cron

# www用户添加后台任务
crontab -u www -e
# 填写如下字段,注意目录地址
*/15 * * * * php -f /www/wwwroot/pan.test.com/ cron.php

# 检查是否添加成功
crontab -u www -l
# 输出如下说明成功
*/15 * * * * php -f /www/wwwroot/pan.test.com/ cron.php

设置完可以执行测试一下

sudo -u www php -f /www/wwwroot/pan.test.com/cron.php

执行完刷新网页,可以看到绿点上次执行 几秒前

crontab

其他设置-电子邮件服务器

官方描述
Nextcloud does not contain a full email server, but rather connects to your existing mail server.
The Nextcloud Email wizard supports three types of mail server connections: SMTP, PHP, and Sendmail. Use the SMTP configurator for a remote server, and PHP or Sendmail when your mail server is on the same machine as Nextcloud.

Nextcloud 自身不带邮件服务器,支持链接三种邮件服务器,如果你单独配置好了邮件服务器请使用 PHP 或者 Sendmail .如果是链接远程服务器请使用 smtp

所以我们使用 smtp ,设置如下

mail

最大上传大小-大文件同步出错

其他设置-文件处理-最大上传大小,默认为 512MB 可以修改,官方是这么解释的:

  • 这个限制的是通过浏览器上传的文件大小。
  • 使用客户端无视这个上传限制,因为这个客户端会将文件切分后上传。

修改后浏览器的确可以上传 1-2GB 文件,但是!使用客户端上传大文件(比如一个8GB的文件)时仍会报如下错误

Documents\nextcloud,Error transferring…… - server replied: Service Unavailable

官方文档 解决的是浏览器问题,照着修改一番无果,最后还是通过修改php.ini解决了,而且修改php.ini后,Nextcloud 的设置便没有用了,即使还是默认的 512MB ,浏览器照样可以上传大于它的文件。

宝塔-软件管理-php设置
先停止php

php服务 停止

配置修改

max_execution_time 3600
max_input_time  3600
memory_limit 512M
post_max_size 10240M
upload_max_filesize 10240M
保存

上传限制

10240 保存

超时限制

3600 保存

重启php

php服务 停止

应用

Nextcloud 的应用可以通过两种方式安装

  • 管理页面-应用 安装并启用应用(推荐)
  • 下载安装包解压后上传至 Nextcloud 的 app 目录,然后管理页面-应用-启用
  • 默认的 app 目录为 /www/wwwroot/pan.test.com/apps

外部存储 External storage support

应用管理界面启用 External storage support

添加外部存储

如果页面提示

没有安装 “smbclient”无法挂载 “SMB / CIFS”, “SMB / CIFS 使用 OC 登录信息”. 请联系您的系统管理员安装.

解决方法如下

yum -y install libsmbclient libsmbclient-devel
pecl install smbclient

安装完成后输出

Build process completed successfully
Installing '/www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/smbclient.so'
install ok: channel://pecl.php.net/smbclient-0.9.0
Extension smbclient enabled in php.ini

重载php-fpm生效

# 重载php-fpm
宝塔-软件管理-php-7.0设置-php服务-重载配置

刷新网页