前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「玩转树莓派」搭建属于自己的云盘服务

「玩转树莓派」搭建属于自己的云盘服务

作者头像
小柒2012
发布2019-12-09 18:28:17
2.4K0
发布2019-12-09 18:28:17
举报
文章被收录于专栏:IT笔记

?

前言

最近在整理硬盘中的一些视频文档,虽然之前进行了分类,但时间一长,还是有点乱,找个东西得翻找半天。于是乎,就有了下面这个小玩意,自建云盘服务。

软硬清单

  • 外接硬盘一枚(用于挂载)
  • 宽带、路由器(家中常备)
  • SSH连接工具(SecureCRT,Xshell)
  • Nginx、PHP、owncloud、ngrok
  • 装好系统的树莓派 3B+ 一只(充电器、CPU散热风扇等)

配置环境

安装 Nginx
代码语言:javascript
复制
sudo apt-get update
sudo apt-get install nginx
sudo service nginx start
安装 PHP
代码语言:javascript
复制
# owncloud 需要的基础库,必须要安装
sudo apt-get install php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-cgi
sudo apt-get install php7.0-intl  php7.0-mysql php7.0-zip php7.0-dom  php7.0-mbstring

sudo service php7.0-fpm restart
安装 MySql
代码语言:javascript
复制
sudo apt-get install mysql-server
sudo apt-get install mysql-client

安装完成以后进入数据库,无需输入密码:

代码语言:javascript
复制
sudo  mysql -u root -p

修改密码:

代码语言:javascript
复制
sudo systemctl restart mysql

sudo systemctl status mysql

云盘安装

下载最新资源,国外网站,可能略慢,请耐心等待:

代码语言:javascript
复制
wget https://download.owncloud.org/community/owncloud-10.1.1.tar.bz2

下载完成,解压文件:

代码语言:javascript
复制
sudo tar -xvf owncloud-10.1.1.tar.bz2

云盘 owncloud 配置文件:

代码语言:javascript
复制
server {
  # 80端口被占用,这里使用8081
    listen 8081 default_server;
    listen [::]:8081 default_server;
  # 安装目录
    root /home/pi/owncloud;
    index index.php index.htm;
    client_max_body_size    10G; 
    fastcgi_buffers    64    4K; 
    gzip    off; 
    rewrite    ^/caldav(.*)$    /remote.php/caldav$1 redirect; 
    rewrite    ^/carddav(.*)$    /remote.php/carddav$1 redirect;
    rewrite    ^/webdav(.*)$    /remote.php/webdav$1 redirect;
    index    index.php;
    error_page    403    /core/templates/403.php;
    error_page    404    /core/templates/404.php;
    location = /robots.txt {
        allow all; 
        log_not_found off; 
        access_log off; 
    } 
    location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
        deny all; 
    }
    location / {
        # The following 2 rules are only needed with webfinger 
        rewrite ^/.well-known/host-meta /public.php?service=host-meta last; 
        rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; 
        rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; 
        rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; 
        rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; 
        try_files $uri $uri/ /index.php; 
    }
    location ~ \.php(?:$|/) {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$; 
        include fastcgi_params; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_param PATH_INFO $fastcgi_path_info; 
        #ifastcgi_pass php-handler; 
    }
    location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
          expires 30d; 
          # Optional: Don't log access to assets 
          access_log off; 
    } 

}

配置完成后,进入安装界面,输入管理员账号密码以及数据库相关信息,点击进入下一步即可安装成功:

初始页面:

内网穿透

如果你想要在非局域网中访问,就需要加一个穿透,来访问我们内网的服务。

首先,我们要把之前生成的 ngrok 客户端(linux_arm)上传到树莓派:

然后,创建一个 ngrok.yml 配置文件:

代码语言:javascript
复制
server_addr: "ngrok.52itstyle.vip:4443"
trust_host_root_certs: false
tunnels:
  owncloud:
    proto:
      http: "8081"

启动服务:

代码语言:javascript
复制
./ngrok -config=ngrok.yml start owncloud

SSH是要关闭的,所以要使 ngrok 后台运行:

代码语言:javascript
复制
# 首先安装screen
sudo apt-get install screen

之后运行:

代码语言:javascript
复制
screen -S 任意名字(例如:keepngork)

然后运行ngrok启动命令:

代码语言:javascript
复制
./ngrok -config=ngrok.yml start owncloud

最后按快捷键:

代码语言:javascript
复制
 ctrl+A+D

如果出现以下,既可以保持ngrok后台运行。

代码语言:javascript
复制
[detached from 14930.keepngork]

最后,配置信任域名,否则穿透域名无法访问:

代码语言:javascript
复制
sudo vim config/config.php

加入代理域名:

代码语言:javascript
复制
array (
    0 => '192.168.1.157:8081',
    1 => 'owncloud.ngrok.52itstyle.vip',
  ),

演示地址:http://owncloud.ngrok.52itstyle.vip

前台:

后台:

音频播放:

小结

云盘在内网体验还是蛮好的,搜索、收藏、分享,功能很齐全。只是加了代理穿透以后,上传大文件有点慢。当然了如果想正儿八经的使用,最好挂载一个 T 级别的硬盘。

参考

/developer/article/1551086

?

?

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 软硬清单
  • 配置环境
    • 安装 Nginx
      • 安装 PHP
        • 安装 MySql
        • 云盘安装
        • 内网穿透
        • 小结
        • 参考
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com