回答

收藏

[大赛作品提交] 基于树莓派3B的NextCloud私人云盘

Raspberry Pi Raspberry Pi 9102 人阅读 | 0 人回复 | 2018-01-05

本帖最后由 ky123 于 2018-2-5 11:07 编辑

感谢e络盟提供的比赛赞助基金。

一、项目名称:
基于树莓派3B的NextCloud私人云盘

1.原理介绍
树莓派3B上安装MariaDB+PHP+Nginx+NextCloud服务端,实现私人云盘功能,然后通过蒲公英路由器突破内网,实现外网使用NextCloud云盘服务,如果有域名还可以直接添加域名
2.系统版本
RASPBIAN STRETCH LITE
最新版本下载地址
https://downloads.raspberrypi.org/raspbian_lite_latest
3.应用源代码
首先安装MariaDB
  1. sudo apt install mariadb-server
复制代码
并配置MYSQL服务
  1. sudo systemctl start mysql
  2. sudo mysql_secure_installation
复制代码
输入
  1. sudo mysql -u root -p
复制代码
创建nextcloud数据库
  1. CREATE DATABASE nextcloud;
复制代码
设置数据库用户名nextcloud,密码Mycloud
  1. GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'Mycloud';
复制代码
保存修改并退出
  1. FLUSH PRIVILEGES;
  2. \q
复制代码
按下图设置




然后安装PHP组件
  1. sudo apt-get install php-fpm php-cli php-json php-curl php-imap php-gd php-mysql php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring
复制代码





下载NextCloud服务端
  1. wget https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip
复制代码



解压压缩包
  1. unzip nextcloud-12.0.4.zip
复制代码
移动到www目录下面并修改权限
  1. sudo mv nextcloud /var/www
  2. sudo chown -R www-data: /var/www/nextcloud
复制代码

生成SSL证书
生成证书命令.txt (389 Bytes, 下载次数: 53)

需要设置国家 省份 城市等 不想填写的可以按回车跳过



为nginx创建nextcloud配置文件
  1. sudo vi /etc/nginx/sites-available/nextcloud
复制代码
加入下面代码,其中my.nextcloud.com为树莓派3B使用的域名,根据自身情况修改,不添加也可以
  1. server {
  2.     listen 80;
  3.     server_name my.nextcloud.com;
  4.     return 301 https://$server_name$request_uri;
  5. }
  6. server {
  7.     listen 443 ssl http2;
  8.     server_name my.nextcloud.com;
  9.     root /var/www/nextcloud;

  10.     ssl on;
  11.     ssl_certificate     /etc/nginx/ssl/nextcloud.crt;
  12.     ssl_certificate_key /etc/nginx/ssl/nextcloud.key;
  13.     ssl_session_timeout 5m;
  14.     ssl_ciphers               'AES128+EECDH:AES128+EDH:!aNULL';
  15.     ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
  16.     ssl_prefer_server_ciphers on;

  17.     add_header X-Content-Type-Options nosniff;
  18.     add_header X-Frame-Options "SAMEORIGIN";
  19.     add_header X-XSS-Protection "1; mode=block";
  20.     add_header X-Robots-Tag none;
  21.     add_header X-Download-Options noopen;
  22.     add_header X-Permitted-Cross-Domain-Policies none;

  23.     access_log  /var/log/nginx/nextcloud.access.log;
  24.     error_log   /var/log/nginx/nextcloud.error.log;

  25.     location = /robots.txt {
  26.         allow all;
  27.         log_not_found off;
  28.         access_log off;
  29.     }

  30.     location = /.well-known/carddav {
  31.         return 301 $scheme://$host/remote.php/dav;
  32.     }
  33.     location = /.well-known/caldav {
  34.         return 301 $scheme://$host/remote.php/dav;
  35.     }

  36.     client_max_body_size 512M;
  37.     fastcgi_buffers 64 4K;
  38.     gzip off;

  39.     error_page 403 /core/templates/403.php;
  40.     error_page 404 /core/templates/404.php;

  41.     location / {
  42.         rewrite ^ /index.php$uri;
  43.     }

  44.     location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
  45.         deny all;
  46.     }

  47.     location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
  48.         deny all;
  49.     }

  50.     location ~^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
  51.         include fastcgi_params;
  52.         fastcgi_split_path_info ^(.+\.php)(/.+)$;
  53.         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  54.         fastcgi_param PATH_INFO $fastcgi_path_info;
  55.         fastcgi_param HTTPS on;
  56.         #Avoid sending the security headers twice
  57.         fastcgi_param modHeadersAvailable true;
  58.         fastcgi_param front_controller_active true;
  59.         fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
  60.         fastcgi_intercept_errors on;
  61.         fastcgi_request_buffering off;
  62.     }

  63.     location ~ ^/(?:updater|ocs-provider)(?:$|/) {
  64.         try_files $uri/ =404;
  65.         index index.php;
  66.     }

  67.     location ~* \.(?:css|js)$ {
  68.         try_files $uri /index.php$uri$is_args$args;
  69.         add_header Cache-Control "public, max-age=7200";
  70.         add_header X-Content-Type-Options nosniff;
  71.         add_header X-Frame-Options "SAMEORIGIN";
  72.         add_header X-XSS-Protection "1; mode=block";
  73.         add_header X-Robots-Tag none;
  74.         add_header X-Download-Options noopen;
  75.         add_header X-Permitted-Cross-Domain-Policies none;
  76.         # Optional: Don't log access to assets
  77.         access_log off;
  78.     }

  79.     location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
  80.         try_files $uri /index.php$uri$is_args$args;
  81.         access_log off;
  82.     }

  83.     location ~ /\.ht {
  84.         deny all;
  85.     }
  86. }
复制代码
链接配置文件
  1. sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud
复制代码
查看nginx状态
  1. sudo nginx -t
复制代码
出现下图信息表示OK,否则需要按出错提示修改

然后重启nginx服务
  1. sudo service nginx restart
复制代码
在局域网电脑或平板浏览器输入
  1. https:/<a href="http://cn.element14.com/raspberry-pi/raspberrypi3-modb-1gb/sbc-raspberry-pi-3-mod-b-1gb-ram/dp/2525226?CMP=DSP-ODB-CN-SEP2017-EEFOCUS-PIDESIGN-PIMAIN">/树莓派3B</a>局域网IP/install.php
复制代码
打开下面页面

填写管理账号密码 数据库账号密码,还可以修改数据存放目录
a
按完成后开始保存修改

完成后进入下面页面,可以按需下载安卓、苹果客户端、桌面系统客户端来同步其他设备文件

默认NextCloud云盘文件如下


云盘中视频文件可以直接点播,如下图

云盘中PDF、TXT等文档可以直接阅读



设置菜单如下



云盘中照片可以直接查看

可以看到安装的为最新版本

CPU 内存 硬盘资源占用如下

外网电脑使用NextCloud云盘需要将树莓派3B连接到蒲公英路由器,然后参考笔者下面帖子将蒲公英路由器联网
蒲公英X3路由器上电、联网、设置无线密码、升级
然后登陆管理界面选择绑定账号后注册一个花生壳账号,也可以直接使用蒲公英路由器SN号产生的花生壳账号



自己注册的账号需要绑定账号

内置账号也可以直接使用

树莓派连接上蒲公英路由器,然后查看路由器管理界面可以看到局域网IP

登陆路由器管理界面选择智能组网,将路由器添加到网络成员

然后在需要外网访问树莓派的设备(电脑、手机、平板等)上安装蒲公英路由器客户端
https://pgy.oray.com/download/
Windows电脑下载安装如图

打开

登陆之前申请的Oray花生壳账号,然后进入路由器管理界面可以看到客户端显示如下

将客户端加入网络成员以便外网访问,客户端添加需要设置密码

电脑断开蒲公英路由器后使用其他网络登陆客户端

搜索树莓派连接的蒲公英路由器的局域网IP

双击上面树莓派那项开始ping,或者WIN+R输入cmd后输入ping+上面树莓派ip测试响应

接着在外网电脑上使用桌面客户端同步文件即可
Windows 7以上系统下载下面客户端
https://download.nextcloud.com/desktop/releases/Windows/Nextcloud-2.3.3.1-setup.exe
Mac OS X 10.9以上系统下载下面客户端
https://download.nextcloud.com/desktop/releases/Mac/Installer/Nextcloud-2.3.3.84.pkg
Linux系统下载下面客户端
https://download.nextcloud.com/desktop/releases/Linux/Nextcloud-2.3.3-x86_64.AppImage
对于手机或者平板需要下载相应蒲公英客户端
笔者手机为安卓,首先下载安装蒲公英客户端安卓版本


打开客户端

登陆之前注册的Oray账号

连接好后下载安装NextCloud的移动客户端同步文件即可
安卓设备从下面地址下载客户端或者百度搜索NextCloud安卓客户端下载
https://play.google.com/store/apps/details?id=com.nextcloud.client
苹果IOS客户端下载地址
https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8


分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条