爱板网论坛

查看: 1067|回复: 0

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

[复制链接]

主题

好友

1883

积分

版主

  • TA的每日心情
    奋斗
    昨天 22:13
  • 签到天数: 303 天

    连续签到: 6 天

    [LV.8]以坛为家I

    发表于 2018-1-5 21:22:18 |显示全部楼层
    本帖最后由 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
    复制代码
    按下图设置
    2018-01-05_185419.png

    2018-01-05_185506.png



    然后安装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
    复制代码
    2018-01-05_185534.png

    2018-01-05_185845.png




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


    2018-01-05_111925.png

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

    生成SSL证书
    生成证书命令.txt (389 Bytes, 下载次数: 11)
    需要设置国家 省份 城市等 不想填写的可以按回车跳过
    2018-01-05_114827.png

    2018-01-05_114925.png


    为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,否则需要按出错提示修改
    2018-01-05_120154.png

    然后重启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
    复制代码
    打开下面页面
    2018-01-05_120343.png

    填写管理账号密码 数据库账号密码,还可以修改数据存放目录
    2018-01-05_120738.png
    a
    按完成后开始保存修改
    2018-01-05_120746.png

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

    默认NextCloud云盘文件如下
    2018-01-05_121005.png

    2018-01-05_121025.png

    云盘中视频文件可以直接点播,如下图
    2018-01-05_121040.png

    云盘中PDF、TXT等文档可以直接阅读
    2018-01-05_121117.png

    2018-01-05_121134.png

    2018-01-05_121150.png

    设置菜单如下
    2018-01-05_121314.png

    2018-01-05_121327.png

    2018-01-05_121751.png

    云盘中照片可以直接查看
    2018-01-05_121838.png

    可以看到安装的为最新版本
    2018-01-05_121931.png

    CPU 内存 硬盘资源占用如下
    2018-01-05_122100.png

    外网电脑使用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


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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

    手机版|爱板网

    GMT+8, 2018-5-27 11:32 , Processed in 0.118701 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部