利用阿里云OSS安装高速私有云盘Nextcloud/Owncloud

文章介绍了如何利用Owncloud/Nextcloud搭建私有云盘,重点讲述了Nextcloud的功能优势和与Owncloud的关系。在服务器上安装Nextcloud并结合阿里云OSS进行存储,通过挂载OSSFS实现对象存储。同时,文章提到了环境要求,如PHP和数据库的配置,并给出了安装Nextcloud的步骤,包括数据目录的设置和HTTPS、HSTS的优化配置,以及缓存系统如APCu的启用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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对象存储映射为了服务器的一个网络硬盘,可直接访问,使用也很方便。
ossfs官网地址:

https://help.aliyun.com/knowledge_detail/153892.html?spm=a2c4g.11186631.2.2.2a255c3dHXFwhd

1.在服务器同区域新建一个Bucket,获取access-key-id和access-key-secret
下面分别以 {bucketname},{access-key-id},{access-key-secret}指代,(注意是不带{}的)。
2.安装ossfs,以centos 7.*为例

wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm
sudo yum localinstall your_ossfs_package

3.配置账号访问信息。
将Bucket名称以及具有此Bucket访问权限的AccessKeyId/AccessKeySecret信息存放在/etc/passwd-ossfs文件中。注意这个文件的权限必须正确设置,建议设为640。

echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

4.将Bucket挂载到指定目录

ossfs my-bucket my-mount-point -ourl=my-oss-endpoint

挂载示例:将杭州地域名称为bucket-test的Bucket挂载到/tmp/ossfs目录下。

echo bucket-test:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /tmp/ossfs
ossfs bucket-test /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com

注意 如果您使用从阿里云购买的云服务器(ECS)来提供ossfs服务,您可以使用内网域名,在这个示例中您可以将OSS endpoint 改为oss-cn-hangzhou-internal.aliyuncs.com,这样可以节省流量费用。OSS的内网域名请参见访问域名和数据中心。

5.如果您不希望继续挂载此Bucket,您可以将其卸载。

fusermount -u /tmp/ossfs

二、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

如果您使用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,
),
### 阿里云OSS存储服务价格较低的原因 #### 成本结构差异 阿里云对象存储OSS采用分布式架构设计,能够实现大规模数据的高效管理和存取操作。这种架构使得单位存储成本随着规模扩大而显著降低[^1]。 #### 定价模式灵活 OSS提供了多种计费方式,包括按量付费、预付费套餐以及不同类型的存储类别(标准型、低频访问型)。用户可以根据实际需求选择最适合自己的方案来控制费用支出。特别是对于不经常读写的冷数据,选用低频访问类型能进一步节省开支[^4]。 #### 生命周期管理特性 通过配置文件或目录级别的生命周期策略,自动迁移符合条件的对象至更经济高效的存储层甚至归档删除,从而有效减少长期保存大量历史资料所带来的额外负担[^5]。 #### 资源利用率最大化 相较于传统单机版硬盘形式的个人云盘产品而言,OSS利用集群化部署实现了更高的I/O性能及并发处理能力,在相同硬件投入下可承载更多请求流量并分摊固定运营成本;另外其内网传输免流机制也有助于减轻带宽方面的消耗。 ```python # Python示例:计算两种存储方式的成本效益比较 def compare_cost(oss_price_per_gb, disk_price_per_gb, data_size_gb): oss_total = oss_price_per_gb * data_size_gb disk_total = disk_price_per_gb * data_size_gb print(f"Using OSS costs {oss_total} yuan.") print(f"Using personal cloud disk costs {disk_total} yuan.") compare_cost(0.148, 0.3, 100) # 假设每GB每月价格和个人云盘对比 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值