美文网首页玩转树莓派树莓派树莓派
用树莓派做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