这段时间, 高大上的文章太多, 不是源码解析就是分布式高并发亦或是一连串的 BUG 排查, 再就是这可能是讲 xxx 最 xxx 的一篇文章了<被 xxx 烂了>, 现在的程序员学的精的不能再精了, 来做点有趣的事情吧.
前言
最近在整理硬盘中的一些视频文档, 虽然之前进行了分类, 但时间一长, 还是有点乱, 找个东西得翻找半天. 于是乎, 就有了下面这个小玩意, 自建云盘服务.
软硬清单
外接硬盘一枚(用于挂载)
宽带, 路由器(家中常备)
SSH 连接工具(SecureCRT,Xshell)
Nginx,PHP,owncloud,ngrok
装好系统的树莓派 3B+ 一只(充电器, CPU 散热风扇等)
配置环境
安装 Nginx
- sudo apt-get update
- sudo apt-get install nginx
- sudo 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-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
- sudo apt-get install MySQL-server
- sudo apt-get install MySQL-client
安装完成以后进入数据库, 无需输入密码:
sudo MySQL -u root -p
修改密码:
- sudo systemctl restart MySQL
- sudo 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;
- }
- }
配置完成后, 进入安装界面, 输入管理员账号密码以及数据库相关信息, 点击进入下一步即可安装成功:
初始页面:
内网穿透
如果你想要在非局域网中访问, 就需要加一个穿透, 来访问我们内网的服务.
首先, 我们要把之前生成的 ngrok 客户端 (linux_arm) 上传到树莓派:
然后, 创建一个 ngrok.YAML 配置文件:
- server_addr: "ngrok.52itstyle.vip:4443"
- trust_host_root_certs: false
- tunnels:
- owncloud:
- proto:
- http: "8081"
启动服务:
./ngrok -config=ngrok.YAML start owncloud
SSH 是要关闭的, 所以要使 ngrok 后台运行:
- # 首先安装 screen
- sudo apt-get install screen
之后运行:
screen -S 任意名字(例如: keepngork)
然后运行 ngrok 启动命令:
./ngrok -config=ngrok.YAML 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',
- ),
前台:
后台:
播放音乐:
客户端:
小结
来源: https://www.cnblogs.com/smallSevens/p/10816126.html