文章目录
- 1 OwnCloud简介
- 2 OwnCloud的安装
- 3 将OwnCloud服务进行HTTPS加密
1 OwnCloud简介
OwnCloud是一款开源的个人网盘软件,适用于自建服务器的云存储服务,一般为个人使用,具有文件同步、文件分享功能,并支持WebDAV以及在线流媒体播放。OwnCloud服务端的运行依赖LAMP环境,因此我们应当先将LAMP环境配置完善后再进行OwnCloud服务端软件的安装。
2 OwnCloud的安装
在安装过程中有如下几个关键步骤以及需要注意的点:
- 安装Apache,Ubuntu包名为apache2,CentOS包名为httpd。安装结束后打开默认界面测试,注意开通防火墙相关端口。
- 安装版本高于5.6的PHP,若版本低于5.6则首先删除所有php相关包,然后通过添加源的方式安装更高版本的包。
- 为了保证大文件传输时不出错,修改php的配置文件
php.ini
,将其中的upload_max_filesize
和post_max_size
修改为一个较大的值(表示的是上传文件和通过POST方式发送数据包的最大大小,推荐写100M
或更大),并修改max_execution_time
和max_input_time
(表示每个PHP页面运行和接收数据的最长时间,建议写600
及以上的值),最后修改memory_limit
(内存占用大小)为32M及以上(不能过大)。 - 安装并开启数据库服务(MySQL或MariaDB),并开放3306端口。
- 从官网下载OwnCloud的安装包,并将解压后的文件夹复制到
/var/www/html
后,注意将文件夹所属目录的所有者更改为apache
(Ubuntu为www-data
)用户(chown -R apache.apache /var/www/html
) - 配置文件路径并重启Apache服务后,通过Web界面安装OwnCloud,创建管理员账号并连接数据库后,就可以利用
http://ip:端口/index.php
访问OwnCloud服务了。
3 将OwnCloud服务进行HTTPS加密
将OwnCloud服务与域名绑定并进行https加密是很有必要的。笔者通过Nginx反向代理实现此需求。
为避免与nginx的http服务冲突,首先设置Apache的监听端口为81并将OwnCloud服务运行于其上,接着在nginx的配置文件中新建一个server块:
server {
listen 443 ssl;
server_name cloud.yourdomain.com; # 修改成你自己的域名
charset utf-8;
# 更改数据包大小上限避免大文件传输出错
client_max_body_size 4096M;
# SSL证书,可通过Let's Encrypt https://letsencrypt.org/ 提供的程序申请
ssl_certificate yourdomain.com/fullchain.pem;
ssl_certificate_key yourdomain.com/privkey.pem;
ssl_trusted_certificate yourdomain.com/chain.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
server_tokens off;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
location / {
# 反向代理本机81端口的OwnCloud服务
proxy_pass http://127.0.0.1:81;
index index.php;
}
}
运行后发现OwnCloud网页上的登出链接仍然为http://127.0.0.1:81/...
,这显然是OwnCloud的php配置中没有更改自定义域名导致的,于是修改OwnCloud的配置文件config.ini(位于安装目录下的config文件夹),在trusted_domains
下面添加一行,并增加overwrite.cli.url
和overwritehost
两个字段,如下所示:
'trusted_domains' =>
array (
0 => '127.0.0.1:81',
1 => 'cloud.yourdomain.com',
),
...
'overwrite.cli.url' => 'http://127.0.0.1:81',
'overwritehost' => 'cloud.yourdomain.com',
...
重启apache服务后大功告成,可以通过https://cloud.yourdomain.com/index.php
访问你的网盘了!