owncloud官网:https://owncloud.org/

基于owncloud搭建的个人网盘:https://yasin.store/

因为盈利困难和监管的要求,很多云盘企业都倒闭了。随着360云盘的突然死亡
,百度网盘也就成了目前覆盖用户最广的网盘服务。只是突然有一天,你会发现你的网盘里的那些图片或者视频变成了温馨提示(手动微笑,于是你明白了果然别人都是靠不住的,一切都得靠自己……

当然,还有一个很重要的原因是,百度网盘如果想使用同步盘功能的话,必须要开通会员。而这又是一个对我来说非常实用的功能,在不同的电脑上,同步一些自己常用的文件。于是萌生了自己搭建网盘的想法,在网上简单的搜索后,确定了owncloud和seafile两种备选方案。公司目前在用的企业网盘就是基于seafile搭建的,而且seafile在性能方面也确实比owncloud要优秀不少,可是我最终还是选择了owncloud。因为这个网盘的主要使用者是我和比较熟悉且有需求的朋友,对性能的要求不是那么高,而且owncloud在线直接预览的功能比较接近主流网盘的体验,而且界面相对来说精美些,更符合我的审美。

在确定了要搭建个人网盘后,于是开始动手,没有采用docker(主要是当时还不是很了解docker),是基于LANMP自己慢慢一步步搭建出来的。具体的步骤就不写了,慢慢写的话,估计要花很长时间。我是根据Google的一些教程和官方文档一步步来的,搭建过程中踩得坑很多,其实最终很多解决的方法都是在官方文档中看到的(再次说明文档的重要性)。

这里只说一下对我来说的几个大坑。

1. 上传大文件超时

因为搭建wordpress和其他网站的一些经验,在基本流程中基本没有多大问题,很快就能个通过域名访问owncloud的登录界面,只是使用时很快发现上传小文件时没有问题,上传大文件时很快就会中断上传失败,网上回答的那些owncloud,apahce,php什么的超时的地方也基本都改过来了,最后发现还是不行。几经周折,最后查到限制还是出现在了Nginx上。因为采用的LANMP搭建的网站,Nginx只是起到了一个反向代理和负载均衡的作用,问题就是出现在你想象不到的地方。(后来想想,应该第一个查这里,因为apache所以的连接都是Nginx转发的,只要一开始断了,后面再怎么设置也没有用)
解决方法是最后Nginx的配置文件里加入了如下代码:

proxy_buffering off;
proxy_max_temp_file_size 1024m;
fastcgi_request_buffering off;
client_max_body_size 1024m;

2. 更换php7

这个参考网上的教程一步步来,前面的基本上不会有什么大问题,最后觉得坑的是因为mysql用的是5.6.x的,有几个插件是没有办法直接安装的,最终下的源码编译通过的(感觉平时工作的交叉编译编多了,直接编译不要太简单…)。

3. 采用redis缓存

因为以前没有用过这种基于key-value的数据库,配置时花费了一些时间。

4. 启用https

因为之前的博客是采用了letsencrypt的自动部署工具cerbot部署,对如何部署https证书其实在owncloud这边才算第一次,走了写弯路,但是其实这个花点时间还是能够解决的。

除了印象中的几个大坑之外,其实还是遇到许多大大小小的问题的,比如配置邮箱,执行cron脚本出错,使用外部链接等等等等。但是有多少问题和困难,就有多少解决问题后的激动与喜悦,那种成就感真的是无法描述的,感觉充盈着你的每一个毛孔。恐怕这就是学习最大的乐趣所在吧。

最后附一张没有任何警告和错误的后台:
https://www.shangyexin.com/wp-content/uploads/2018/04/owncloud_background.png