「玩轉樹莓派」搭建屬於本身的雲盤服務

這段時間,高大上的文章太多,不是源碼解析就是分佈式高併發亦或是一連串的BUG排查,再就是這多是講xxx最xxx的一篇文章了 <被xxx爛了> ,如今的程序員學的精的不能再精了,來作點有趣的事情吧。 php

前言

最近在整理硬盤中的一些視頻文檔,雖然以前進行了分類,但時間一長,仍是有點亂,找個東西得翻找半天。因而乎,就有了下面這個小玩意,自建雲盤服務。css

軟硬清單

  • 外接硬盤一枚(用於掛載)
  • 寬帶、路由器(家中常備)
  • 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

安裝完成之後進入數據庫,無需輸入密碼:html

sudo  mysql -u root -p

修改密碼:mysql

sudo systemctl restart mysql

sudo systemctl status mysql

雲盤安裝

下載最新資源,國外網站,可能略慢,請耐心等待:linux

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

下載完成,解壓文件:nginx

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

}

配置完成後,進入安裝界面,輸入管理員帳號密碼以及數據庫相關信息,點擊進入下一步便可安裝成功:web

初始頁面:sql

內網穿透

若是你想要在非局域網中訪問,就須要加一個穿透,來訪問咱們內網的服務。shell

首先,咱們要把以前生成的 ngrok 客戶端(linux_arm)上傳到樹莓派:

而後,建立一個 ngrok.yml 配置文件:

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

啓動服務:

./ngrok -config=ngrok.yml start owncloud

SSH是要關閉的,因此要使 ngrok 後臺運行:

# 首先安裝screen
sudo 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',
  ),

前臺:

後臺:

播放音樂:

客戶端:

小結

雲盤在內網體驗仍是蠻好的,搜索、收藏、分享、音頻播放,功能很齊全。只是加了代理穿透之後,上傳大文件有點慢。固然了若是想正兒八經的使用,最好掛載一個 T 級別的硬盤。

參考

https://blog.52itstyle.vip/archives/3987/

相關文章
相關標籤/搜索