尝试搭建私有云,了解到了Seafile 和 Nextcloud,都搭建出来使用了一番本篇记录了Nextcloud
搭建过程。
Nextcloud
安装方式很多,可以参考如下两种
snap
一键安装(snap
暂不支持Centos
,Ubuntu
可以,支持的系统列表见 https://snapcraft.io/)手动搭建
LAMP
环境 +Nextcloud
安装包(本文采用)
环境:CentOS
宝塔
LAMP
参照:宝塔官网(简单好用的Linux/Windows服务器管理面板)
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
完成后输出管理页面地址以及账户、密码
浏览器打开宝塔面板,首次登陆就会推荐安装lanmp
注意php7.0
宝塔面板-网站-添加站点(同时添加数据库)
- 站点名称
pan.test.com
- 根目录
/www/wwwroot/pan.test.com
- 数据库名
august
- 数据库用户名
august
- 数据库密码
augustd2
宝塔-文件-网站根目录/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
空目录
- 浏览器访问域名
pan.test.com
- 创建管理员帐号 自己创建
- 数据库目录 不用管
- 配置数据库 MySQL/MariaDB
- 数据库 创建站点时创建的数据库
安装完成后跳转到如下页面说明成功
安装完成后,页面顶端提示:代码完整性检查出现异常, 点击查看详细信息…点击进入安全及设置警告。
一堆问题,逐条解决。
重要的先提一下: 所有关于php
设置修改完之后,重载php-fpm-70
服务才生效
这个步骤是从下面逐条解决汇总出来的,省得我截很多图,所以放在最上面了。
- 安装PHP扩展 宝塔-软件管理-php-7.0设置-安装扩展
- 安装如下PHP扩展:
fileinfo
opcache
redis
- 下图中
PATH_INFO
默认已经安装了,不用管
在PHP管理中添加
fileinfo
扩展,参照上文安装php扩展宝塔-软件管理-php-7.0设置-安装扩展-
fileinfo
在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
- 在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,
),
宝塔-网站-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
执行完刷新网页,可以看到绿点上次执行 几秒前
官方描述
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 ,设置如下
其他设置-文件处理-最大上传大小,默认为 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
添加外部存储
如果页面提示
没有安装 “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服务-重载配置
刷新网页