在各大网盘提供商陆续关门之后,现在市场剩下的大型网盘服务屈指可数;在中国大陆范围内,基本上也就是腾讯微云和百度网盘两种;这两个网盘服务设置了不小的门槛。微云免费10G,10G以上收费;百度网盘起步价也是一年百元以上。如果是免费的,各种限速措施,另外还没有api接口,中国互联网企业的高速发展,是以牺牲消费者体验、攫取消费者隐私为代价的。
另外大型的网盘服务商,Google提供的Google Drive以及微软提供的One Drive实际上也是收费的,不过可以通过某些方法获得大容量网盘。不过Google Drive众所周知的原因,正常的方式是无法登陆的。
在数据的重要性之下,为了充分利用网盘资源,实际上,如果能搭建私有的网盘平台的确是不错的选择。
私有网盘平台的优势
本文搭建的是Next Cloud网盘平台,这个平台的前身是own cloud。
究竟搭建Next Cloud有什么好处呢?
1、可以提供多终端登陆。Pc端可以有客户端,网页访问亦可;另外也有适合安卓或苹果系统的客户端。
2、可以提供【外部存储】功能:也就是网盘平台可以与Google Drive、Dropbox、Ftp等资源打通,通过Next Cloud管理这些服务。
3、可以建立离线下载任务。离线任务并不属于Next Cloud提供的,不过可以在服务器上安装Aria;服务商上可以做各种折腾。不过,海外vps对版权问题比较敏感,需要注意。
4、可以支持电子书、PDF等文档,以及音乐、电影等在线播放的功能。
5、可以多用户的各种分享协同使用。
等等等等。
如果你手头上有一台服务器,建立个网盘平台的确是不错的选择。
这是系列教程,因此将分为几篇文章,划重点:
1、利用【宝塔】工具搭建Next Cloud;
2、以Google Drive为例在Next Cloud平台上挂载外部存储;
3、建立Aria离线下载任务;
4、Vps上挂载Google Drive或One Drive。
利用【宝塔】工具搭建Next Cloud
在之前《我是如何一步步建设网站的(上)》(点击打开)教程中,有对宝塔这款工具的大概描述。当然,有多种方式来搭建Next Cloud(或其他多种平台),比如服务商一步步的建立Lamp或Lnmp环境,这个只要愿意折腾也是可以的。另外,部分服务商提供简单的建站各项应用操作,比如Wordpress、Next Cloud等等。
使用idc提供的应用效率上最快,不过提供的系统比较固定,而之后的网站维护等等细节比如ssl证书申请或直接更换平台,比如owncloud等等,不如宝塔来的通俗易懂和更为便捷。
因此,综合比较之下,推荐用宝塔来搭建网盘平台。
安装宝塔面板和安装Lamp
参照:宝塔官网(简单好用的Linux/Windows服务器管理面板)
用putty登陆服务器后,输入:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
完成后输出管理页面地址以及账户、密码:
使用账户和密码登陆提供的地址,即可进入宝塔面板。
浏览器打开宝塔面板,首次登陆就会推荐安装套件。这里说一下推荐的配置:
- 系统上,Linux有Centos、Debian、Ubuntu等区分。
如果是建站,推荐使用Centos;如果是为了某些出国服务,使用Debian。Ubuntu并不熟悉,不做点评。
建站要比某些出国服务复杂的多,所以当然选择Centos。另外,Centos7额外有个防火墙的梗(需要额外的设置,略麻烦),这也就是Centos7之下,出现某些服务的确启动了,但用不了的原因;因此推荐使用Centos6。
如果要安装锐速等服务呢?Debian不需要额外的操作;而Centos需要更换内核。参考网站文章:
我安装的是Centos6 64位,完美解决更换内核、安装锐速的操作。
注意:Centos6×64系统下,大致的流程:
安装系统→安装宝塔→更换内核→安装lamp或lnmp→安装锐速→其他某些服务
- lanmp和lnmp的选择上,如果是普通建站,比如Wordpress还是比较推荐Lnmp的;不过Next Cloud是比较推荐Lamp的。这里不是说Lnmp就不能安装Next Cloud,Debian系统也可以安装的,只不过后续会碰到一些细节问题,从个人经验来说,为了避免这些预料不到的各种情况做了这些推荐。
选择如上图的配置。另外php尤其说一下:
Next Cloud的新版支持的最后版本是php7.0了,可以选择安装php7.1。Next Cloud最新版目前是13.01,版本更新进度比较快。我的Next Cloud平台使用的是12.5版本,因为发现Next Cloud13.01里面挂载外部存储没有Google Drive选项。
Next Cloud往期版本下载:
https://nextcloud.com/install/#instructions-server
点击Changelog,可以各种版本选择。
创建站点,安装Nextcloud
注意:需要在域名解析服务商添加A类记录的解析配置,以下均为测试
宝塔面板-网站-添加站点(同时添加数据库)
- 站点名称
pan.test.com
- 根目录
/www/wwwroot/pan.test.com
- 数据库名
***
- 数据库用户名
***
- 数据库密码
***
宝塔-文件-网站根目录/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
- 数据库 创建站点时创建的数据库
安装完成后跳转到如下页面说明成功
为什么推荐使用宝塔来搭建,这里的优势就显现出来了:
如果我对这个版本的Next Cloud不满意,想更换其他的版本;或者我对Next Cloud不满意,想更换成own Cloud;或者,我对这些都不满意,想搭建国产的协作平台“可道云”(可道云宝塔提供一键部署源码);都可以随意操作,只需要删除网站和数据库,然后重新建一个就可以了。(细节,满意之后再申请ssl)
Next Cloud安全及设置警告
安装完成后,点击右上角【管理】,页面顶端提示:代码完整性检查出现异常, 点击查看详细信息…点击进入安全及设置警告。
重要的先提一下: 所有关于php
设置修改完之后,重载php-fpm-70
服务才生效
- 安装php扩展
这个步骤是从下面逐条解决汇总出来的,放在最上面。
- 安装PHP扩展 宝塔-软件管理-php-7.0设置-安装扩展
- 安装如下PHP扩展:
fileinfo
opcache
redis
- 下图中
PATH_INFO
默认已经安装了,不用管
- 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
- 内存缓存未配置
在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,
),
- 您正在通过 HTTP 访问该站点
宝塔-网站-pan.test.com
-设置-SSL-let's Encrypt
-申请
提醒,满意了再申请。
- 一些文件没有通过完整性检查
参数解释如下,自行判读,
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 自身不带邮件服务器,支持链接三种邮件服务器,如果你单独配置好了邮件服务器请使用 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服务 停止
Next的应用设置
Nextcloud 的应用可以通过两种方式安装
- 管理页面-应用 安装并启用应用(推荐)
- 下载安装包解压后上传至 Nextcloud 的 app 目录,然后管理页面-应用-启用
默认的 app 目录为 /www/wwwroot/pan.test.com/apps
外部存储 External storage support,这款应用是后面的文章挂载Google Drive等服务的必备。
添加外部存储
如果页面提示
没有安装 “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服务-重载配置
刷新网页
至此,Next Cloud的的安装工作完成