博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「玩转树莓派」搭建属于自己的云盘服务
阅读量:4350 次
发布时间:2019-06-07

本文共 3513 字,大约阅读时间需要 11 分钟。

109211-20190505203850630-1350971554.jpg

这段时间,高大上的文章太多,不是源码解析就是分布式高并发亦或是一连串的BUG排查,再就是这可能是讲xxx最xxx的一篇文章了,现在的程序员学的精的不能再精了,来做点有趣的事情吧。

前言

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

软硬清单

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

配置环境

安装 Nginx

sudo apt-get updatesudo apt-get install nginxsudo service nginx start

安装 PHP

# owncloud 需要的基础库,必须要安装sudo apt-get install php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-cgisudo apt-get install php7.0-intl  php7.0-mysql php7.0-zip php7.0-dom  php7.0-mbstringsudo service php7.0-fpm restart

安装 MySql

sudo apt-get install mysql-serversudo apt-get install mysql-client

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

sudo  mysql -u root -p

修改密码:

sudo systemctl restart mysqlsudo systemctl status mysql

云盘安装

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

wget https://download.owncloud.org/community/owncloud-10.1.1.tar.bz2

下载完成,解压文件:

sudo tar -xvf owncloud-10.1.1.tar.bz2

云盘 owncloud 配置文件:

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;     } }

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

109211-20190505203906512-756435190.png

初始页面:

109211-20190505203913794-627166199.png

内网穿透

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

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

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

server_addr: "ngrok.52itstyle.vip:4443"trust_host_root_certs: falsetunnels:  owncloud:    proto:      http: "8081"

启动服务:

./ngrok -config=ngrok.yml start owncloud

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

# 首先安装screensudo apt-get install screen

之后运行:

screen -S 任意名字(例如:keepngork)

然后运行ngrok启动命令:

./ngrok -config=ngrok.yml start owncloud

最后按快捷键:

ctrl+A+D

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

[detached from 14930.keepngork]

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

sudo vim config/config.php

加入代理域名:

array (    0 => '192.168.1.157:8081',    1 => 'owncloud.ngrok.52itstyle.vip',  ),

前台:

109211-20190505203930668-2073881601.png

后台:

109211-20190505203956272-561322943.png

播放音乐:

109211-20190505205342583-98797072.png

客户端:

109211-20190505204043134-1393804397.png

小结

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

参考

转载于:https://www.cnblogs.com/smallSevens/p/10816126.html

你可能感兴趣的文章
不定个数的输入数字 并做复数运算
查看>>
A week of egg yoghourt diet, 7 days off 16 pounds of fat
查看>>
メイプルストーリー、「魔法少女まどか☆マギカ」とのタイアップを実施
查看>>
Knockout.Js官网学习(系列)
查看>>
Win8 连连看小程序
查看>>
例3-1和例3-2
查看>>
Centos7安装net Core
查看>>
cogs1538 [AHOI2005]LANE 航线规划
查看>>
[AaronYang]C#人爱学不学[3]
查看>>
使用eclipse学习java第一课
查看>>
1047 编程团体赛
查看>>
java 基本程序设计结构 一
查看>>
大数据概述
查看>>
SpringCloud-Config分布式配置中心
查看>>
c++ string 结束符‘\000’
查看>>
Js 自定义日期格式的正则表达式验证
查看>>
python 全栈开发,Day89(sorted面试题,Pycharm配置支持vue语法,Vue基础语法,小清单练习)...
查看>>
CSS3 Loading(加载)动画效果
查看>>
POJ 1474 Video Surveillance
查看>>
EntityFramework CodeFirst 数据库迁移
查看>>