美文网首页玩转树莓派树莓派树莓派
用树莓派做owncloud私有云服务器

用树莓派做owncloud私有云服务器

作者: FengQZ | 来源:发表于2019-05-12 10:38 被阅读2次

实现步骤如下:

  1. docker安装owncloud owncloud
  2. 申请1元阿里云域名+免费“赛门铁克”https证书
  3. 设置路由动态解析域名,设置端口映射,实现广域网访问
  4. nginx+https反向代理owncloud

一. docker安装owncloud

1. 给树莓派安装系统

a. 首先给树莓派安装系统,可选择respbian,ubuntu,debian等,我安装的是 respbian-lite 精简版系统,因为作为文件服务器并不需要太多桌面版的功能;
b.将树莓派连接到网络中;
c.可以开启树莓派ssh服务,方便使用电脑操作,运行pi@raspberrypi:~ $ raspi-config开启,具体操作,可以自己查教程。

2. 安装docker-owncloud

a. 安装docker,这里有完整树莓派docker安装教程

b. docker安装mysql(非必须)
(owncloud默认使用sqlite存储用户和文件信息,如果图简单,也可以不安装mysql,当然,理论上mysql的速度要比sqlite快,所以云服务器性能会好些)

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 hypriot/rpi-mysql

c. docker安装owncloud
下面分别是使用mysql和不使用的owncloud安装语句

  • 使用mysql
docker run -p 8080:80 -d --link mysql:mysql -v /data/owncloud/:/var/www/html owncloud 
  • 不使用mysql
docker run -p 8080:80 -d -v /data/owncloud/:/var/www/html owncloud 

说明:

  1. 这里的8080端口映射不是必须的,如果只是作为内网使用的owncloud就没有必要使用8080端口,可以直接 80:80就行了,但是如果需要广域网访问,最好还是做一下映射,端口可自定义;
  1. 具体的docker语句不在此做太多解释,需要注意的是 -v /data/owncloud/:/var/www/html ,这里是将owncloud的 【前端界面文件和用户的上传文件(docker容器 /var/www/html/data 下)】映射到了树莓派的本地磁盘下的 /data/owncloud 下,便于管理和用户文件的备份等操作;
  1. 我使用的是一个32G的SD卡,平时只是做一些小文件的备份,所以并没有挂硬盘,如果你使用了硬盘,则需要将此处的映射/data/owncloud改成你的硬盘下的目录;

完成上面的步骤,我们的owncloud已经在运行了,使用ifconfig查询树莓派当前局域网IP,打开浏览器访问 http://树莓派局域网IP:8080 设置管理员用户名密码,如果使用了mysql,还需要配置mysql:

Xnip2019-05-12_10-32-30.jpg 2109322-efe42e72b9627011.png
数据库用户:root
数据库密码:123456(或者自定义的其他密码)
数据库名:owncloud (提前新建空数据库)
localhost: mysql(忘了是直接填入mysql 还是填上 localhost:mysql,填错会报错,所以可以多次尝试)

点击安装完成,稍等片刻,即可进入文件管理界面,内网版owncloud创建完成,如果需要广域网访问,请继续往下看

2. 申请1元阿里云域名+免费“赛门铁克”https证书

重要: 我使用的是k2p路由器,刷的荒野无灯固件,可以直接解析阿里云域名,如果你的路由器不支持阿里云域名解析,则需要考虑其他服务商的域名服务了,这里只介绍阿里云的域名解析方法

a. 申请1元域名
百度搜索 “阿里云1元域名”,即可进入申请,具体步骤很简单,不会的自行搜索方法;
申请到域名后其实就可以直接路由动态解析域名+端口映射完成广域网访问了,但是此时的连接使用的http协议,owncloud使用的明文传输,谁也不希望自己的文件就这么在互联网里裸奔,所以我们还需要做下面的工作:

b. 申请赛门铁克证书并下载证书
申请SSL证书

Xnip2019-05-12_10-12-05.jpg
Xnip2019-05-12_10-14-09.jpg
Xnip2019-05-12_10-18-08.jpg
证书申请之后需要下载对应服务器的版本留作备用,这里我使用了nginx的反向代理,所以下载了nginx
Xnip2019-05-12_10-21-38.jpg

3. 设置路由动态解析域名,设置端口映射,实现广域网访问

k2p 路由器动态域名解析 owncloud.example.com,443端口映射到树莓派443端口


Xnip2019-05-12_10-27-15.jpg
Xnip2019-05-12_10-24-26.jpg
Xnip2019-05-12_10-25-34.jpg

4. nginx+https反向代理owncloud服务

a.安装nginx

运行

pi@raspberrypi:~ $ sudo apt install nginx

安装nginx

b. 导入https证书(root操作)

mkdir -p /etc/nginx/cert //创建证书目录
cp 上面步骤的证书目录/* /etc/nginx/cert

c. 添加 /etc/nginx/conf.d/default.conf,修改配置如下(root操作)

server {
    listen 443;
    server_name 你的域名;
    ssl on;
    ssl_certificate   cert/证书文件.pem;
    ssl_certificate_key  cert/证书key文件.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:$
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    //转发全部443请求到8080端口
    location / { 
        proxy_pass http://127.0.0.1:8080;
        index  index.php index.html index.htm;
        client_max_body_size 1000M;
    }

    error_page   500 502 503 504 404  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

//自动将http请求转发到https请求
server {
    listen 80;
    server_name 你的域名;
    rewrite ^(.*)$ https://$host$1 permanent;
}

将域名和证书文件填替换上述配置中,\color{red}{注意,需要将中文注释都去掉,否则nginx报错}

此时访问 https://你的域名 就可以直接访问到你的owncloud服务了

注意事项:

  1. owncloud远程网页管理器有个bug,当你使用nginx代理,远程访问时,点击注销和其他少数功能时,会出现访问错误的情况,这是因为他在这些地方使用了绝对路径(本来应该是 /logout,他写成了 ‘http://127.0.0.1:8080/index.php/logout’ ),导致无法访问的问题,不过不影响使用,平时也不怎么使用网页管理,所以我就没有去改他的源码,如果你有强迫证,可以自行修改;
  2. 手机版的owncloud是收费的,可以使用nextcloud作为替代品,因为nextcloud是owncloud的翻版,app兼容

完成

相关文章

网友评论

    本文标题:用树莓派做owncloud私有云服务器

    本文链接:https://www.haomeiwen.com/subject/yhdqaqtx.html