Owncloud/Nextcloud是一个类似于Dropbox/Google Drive的PHP开源私有云盘程序,UI美观功能强大,也可作精确权限控制的团队共享,比百度云什么的都强大多了。国内Dropbox被墙,百度云之类限速很不好用,此时有服务器条件的搭建一个完全属于自由的私有云盘就是一个极好的选择。
Nextcloud是Owncloud的一个分支,原美国的Owncloud公司已倒闭由德国公司接手更新,其原创始人出走创立了Nextcloud,由测试来看, 两者客户端是互通的,界面几乎一样,但Nextcloud使用更加灵活,比如可以自定义Logo和主题,功能更加强大,推荐用Nextcloud,觉得更有前途一些。
上传速度测试,只取决于您的网络带宽,只要您的带宽足够,10几M/s不是问题。
一、OSS对象及OSSFS安装
阿里云对象存储OSS是一种低成本的网络存储技术,如果是用阿里云的服务器,推荐使用阿里云OSS对象存储,存储价格实惠,目前0.148元/GB/月,存储包40G/9元每年,配合阿里云同区域服务器ECS内网免费。安装ossfs工具后相当于把OSS对象存储映射为了服务器的一个网络硬盘,可直接访问,使用也很方便。
github地址:https://github.com/aliyun/ossfs
1.在服务器同区域新建一个Bucket,获取access-key-id和access-key-secret
下面分别以 {bucketname},{access-key-id},{access-key-secret}指代,(注意是不带{}的)。
2.安装ossfs,以centos 7.*为例
cd /usr/local/src wget https://github.com/aliyun/ossfs/releases/download/v1.80.0/ossfs_1.80.0_centos7.0_x86_64.rpm sudo yum localinstall ossfs_1.80.0_centos7.0_x86_64.rpm
3.配置并挂载oss
echo {bucketname}:{access-key-id}:{access-key-secret}> /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs mkdir /mydata cd /mydata mkdir ossfs ossfs {bucketname} /mydata/ossfs -ourl=http://oss-cn-shenzhen-internal.aliyuncs.com
以上注意使用OSS内网地址,上例为深圳的,内网免费,外网地址流量可是很贵的~~
此时运行df -h,可以发现已经将oss挂载为一个分区了,有256T呢,可以放好多电影了~~
4.自动挂载
以上仅单次挂载,重启后自动挂载需如下配置:
vi命令编辑/etc/fstab ,加入以下内容
vi /etc/fstab
ossfs# {bucketname} /mydata/ossfs fuse _netdev,url=http://oss-cn-shenzhen-internal.aliyuncs.com,allow_other 0 0
5. 为目录目录权限
创建一个目录为cloud准备作nextcloud的存储空间,并授予www用户770权限
chown -R www:www /mydata/ossfs/cloud
chmod -R 770 /mydata/ossfs/cloud/
二、nextcloud安装
官网https://nextcloud.com/ 下载安装包,截止目前的版本是12.0。可以Linux yum安装也可以PHP安装,这里介绍的是PHP安装
环境要求:
PHP环境:开启pathinfo和fileinfo拓展;
数据库环境:支持SQLITE,但性能差不推荐,推荐使用 MySQL / MariaDB,其中MySQL须更改默认引擎为 InnoDB。
1.可以下载安装包安装(archive files)也可以用Web自动安装(Web installer) 一个php单页自动引导下载安装,不过鉴于国内网络环境,后者经常因下载失败安装程序失败而安装失败,推荐手动下载安装包安装。
https://download.nextcloud.com/server/installer/setup-nextcloud.php
2.上传服务器解压,
3.创建数据库及用户
4.访问文件夹会自动引导安装
注意,数据目录默认是安装文件夹下的data文件夹,不推荐在安装文件夹下存储数据,以后维护比较麻烦,可以指定其他目录,最好是系统盘之外的数据盘,这样做服务器备份/系统盘快照时只需备份较小的程序文件而不必备份较大的存储文件。我们在之前已经挂载了oss对象存储,这里可以直接指定其路径。
5.填完后稍等片刻,等待生成数据表,安装成功如下:
优化配置:
1.建议强制https
2.启用HSTS,详细如下
启用HSTS模式
在虚拟主机配置中增加一句
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
3.缓存
3.1 启用 PHP OPcache
3.2 内存缓存:单机使用时建议APCU比Redis性格更好,建议单机使用Apcu缓存,分布式则使用Redis缓存
APCU 缓存安装 启用:
cd /usr/local/src wget http://pecl.php.net/get/apcu-5.1.8.tgz tar xzf apcu-5.1.8.tgz cd apcu-5.1.8 /www/server/php/70/bin/phpize ./configure --with-php-config=/www/server/php/70/bin/php-config make make test make install
最后在php.in 加一句:
extension=/www/server/php/70/lib/php/extensions/no-debug-non-zts-20151012/apcu.so
在nextcloud配置文件config.php中加入:
'memcache.local' => '\OC\Memcache\APCu',
如果您使用Redis,则为:
'memcache.local' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ),
Redis安装参考:https://qianrong.me/website/16.html
如果您希望达到更高的性能,可以启用文件事务锁定,以下为使用APcu缓存,Redis作文件事务锁定
'memcache.local' => '\OC\Memcache\APCu', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ),
尊重作者劳动,转载请注明出处:札记-Qianrong's Blog » 利用阿里云OSS安装高速私有云盘Nextcloud/Owncloud