标签: 树莓派

  • 树莓派使用 frp 实现内网穿透搭建 Nextcloud 私有云的准备工作

    树莓派使用 frp 实现内网穿透搭建 Nextcloud 私有云的准备工作

    需要用到的硬件

    烧录好系统的树莓派主机,我使用的是 Raspberry Pi 3B,系统使用RASPBIAN JESSIE LITE

    树莓派适用的散热外壳(大量上传下载的情况下,系统发热量惊人,推荐配置);

    硬盘 + 硬盘底座(树莓派的供电是带不起移动硬盘的,即便给移动硬盘额外的 USB 供电也吃力,强烈推荐)。


    我买的 3B 及其外壳,现在树莓派已经出了第四代了,可以去这里购买:传送门

    双盘位的硬盘盒:传送门
    安装 Nextcloud 前的准备
    确保树莓派已经烧录好系统,可参考:《树莓派(Raspberry Pi)入门实战记录之 SSH 局域网无线连接》为树莓派烧录系统并设置 SSH 连接。

    创建目录、用户

    1. 创建 nobody 用户组,统一系统用户,避免出现权限问题
    $ sudo groupadd nobody
    
    1. 创建网站服务根目录
    $ sudo mkdir [path]/web
    

    树莓派硬盘挂载

    1. 树莓派开启支持 exfat
     $ sudo apt-get install exfat-utils
     $ sudo reboot now // 重启生效
    
    1. 连接硬盘,查看硬盘信息
     $ sudo fdisk -l
    

    我的硬盘信息显示如下:
    5170_P_1442946199645.jpg
    所以,挂载路径为:/dev/sda
    3. 格式化硬盘为 ext4 格式

     $ sudo mkfs.ext4 /dev/sda
    
    1. 创建硬盘挂载点
     $ mkdir [path]/disk
    
    1. 挂载硬盘
     $ sudo mount -t ext4 /dev/sda [path]/disk
    
    1. 设置开机自动挂载
      编辑/etc/fstab,加入以下配置:
     /dev/sda     [path]/disk      ext4      defaults      0      0
    

    安装 MariaDB

    1. 使用 apt-get 安装 MariaDB
     $ sudo apt-get install mariadb-server
    
    1. 创建数据库
     $ mysql -uroot -p
     $ mysql> CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
    1. 创建 nobody 用户并授权
     $ mysql> CREATE USER 'nobody'@'%' IDENTIFIED BY '[password]'; 
     $ mysql> GRANT ALL ON nextcloud.* TO 'nobody'@'%';
    
    1. 为 Nextcloud 配置 MariaDB,参考:Database Requirements for MySQL / MariaDB
     $ mysql> SET GLOBAL binlog_format = 'MIXED';
    
     [mysqld]
    
    1. 配置 innodb ——/etc/mysql/my.cnf,加入以下配置:
      1. 设置 binlog_format

    innodb_large_prefix=on
    innodb_file_format=barracuda
    innodb_file_per_table=1
    “`

    安装 openresty(nginx) 设置随系统启动

    1. 上传 openresty
     scp [local-path]/openresty-1.11.2.3.tar.gz pi@[ip-address]:[path]/openresty-1.11.2.3.tar.gz
    
    1. 编译安装 openresty
     $ sudo apt-get install libpcre3 libpcre3-dev libssl-dev 
     $ ./configure --with-luajit --with-pcre
     $ make
     $ sudo make install
    
    1. 部署 Nginx 站点配置
    2. 部署 openresty 开机自启动

    编译安装 php7.1

    1. 编译安装
     $ sudo apt-get install libxml2-dev curl libcurl4-gnutls-dev libjpeg-dev libxslt-dev
    
     $ ./configure --prefix=[path]/php \
      --with-openssl \
      --with-curl \
      --with-freetype-dir \
      --with-gd \
      --with-gettext \
      --with-iconv-dir \
      --with-kerberos \
      --with-libdir=lib64 \
      --with-libxml-dir \
      --with-mysqli \
      --with-pcre-regex \
      --with-pdo-mysql \
      --with-pdo-sqlite \
      --with-pear \
      --with-jpeg-dir \
      --with-png-dir \
      --with-xmlrpc \
      --with-xsl \
      --with-zlib \
      --with-regex \
      --enable-ctype \
      --enable-maintainer-zts \
      --enable-fpm \
      --enable-bcmath \
      --enable-libxml \
      --enable-inline-optimization \
      --enable-gd-native-ttf \
      --enable-mbregex \
      --enable-mbstring \
      --enable-opcache \
      --enable-pcntl \
      --enable-shmop \
      --enable-soap \
      --enable-sockets \
      --enable-sysvsem \
      --enable-xml \
      --enable-zip
    
     $ make
     $ sudo make install
    
    1. 部署 php 配置文件
     $ sudo cp [php-source-code-path]/php.ini-production [php-path]/php/lib/php.ini
     $ sudo cp [php-path]/php/etc/php-fpm.conf.default [php-path]/php/etc/php-fpm.conf
     $ sudo cp [php-path]/php/etc/php-fpm.d/www.conf.default [php-path]/php/etc/php-fpm.d/www.conf
    
    1. 编辑[php-path]/php/etc/php-fpm.d/[www.conf](http://www.conf),加入以下 PATH(通过执行$ printenv PATH获得)
     /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
    
    1. 继续编辑[php-path]/php/etc/php-fpm.d/[www.conf](http://www.conf),启动 socket 连接方式(提升系统执行效率)
     listen= /var/run/php71-fpm.sock
     listen.owner = nobody
     listen.group = nobody
    
    1. 配置 php-fpm 随系统启动

    安装 Nextcloud 的准备工作完成,下一步是使用 frp 实现内网穿透搭建 Nextcloud 私有云

  • 树莓派使用 frp 实现内网穿透搭建 Nextcloud 私有云

    树莓派使用 frp 实现内网穿透搭建 Nextcloud 私有云

    在家庭网络没有固定 IP 或者家庭网络不能被外网访问的情况下,使用树莓派搭建 Nextcloud 私有云系统服务,需要借助于有外网 IP 的服务器,使用frp等工具进行内网穿透,整套系统的访问过程示意如下:

    格安云服务示意.png



    如果你直接访问到了这个页面,可参考下《树莓派使用 frp 实现内网穿透搭建 Nextcloud 私有云的准备工作》了解采用此方案搭建 Nextcloud 私有云服务所要进行的准备工作,以便快速上手,少走弯路。

    这里主要介绍使用 frp 进行内网穿透和 Nextcloud 私有云的安装。

    搭建内网穿透服务

    1. 参考Github-frp安装配置好 frp 内网穿透服务;
      我的树莓派端的配置文件关键信息如下:
     [common]
     server_addr = [your-public-server-ip]
     server_port = 7000
     privilege_token = [your-privilege_token]
    
     

    [ssh]

    type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000

    [web]

    privilege_mode = true type = http local_port = 80 custom_domains = [your-domain]

    我的公网服务器端的配置文件关键信息如下:

     [common]
     bind_port = 7000
     vhost_http_port = 8080
     dashboard_port = 7500
     # dashboard 用户名密码,默认都为 admin
     dashboard_user = [your-dashboard_user]
     dashboard_pwd = [your-dashboard_pwd]
     privilege_mode = true
     privilege_token = [your-privilege_token]
     privilege_allow_ports = 4000-50000
     log_file = [path]/frps.log
     log_level = info
     log_max_days = 3
    
    1. 公网服务器端配置 Nginx,转发外网访问请求到 frp server 服务;
    server {
     listen 80;
     server_name  [your-domain];
    
     location / {
        proxy_pass http://127.0.0.1:8080; # frp server 端的 vhost_http_port 配置的端口
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_hide_header   X-Powered-By;
      }
    }
    
    1. 配置好后,通过域名 [your-domain] 访问树莓派 Nginx 的默认网站测试配置是否正确

    安装 Nextcloud

    1. 解压下载好的 Nextcloud 程序文件到安装准备工作中创建的 web 目录:[path]/web/nextcloud
    2. 设置目录权限
     $ sudo chown -R nobody:nobody [path]/web/nextcloud
    
    1. 参考Nextcloud Nginx Configuration配置 Nginx,推荐使用 socket 方式连接 php-fpm
    upstream php-handler {
     # server 127.0.0.1:9000;
     server unix:/var/run/php71-fpm.sock;
    }
    
    1. 现在可以通过域名 [your-domain] 访问到 Nextcloud 服务了,通过 Nextcloud 的安装向导设置用户名、密码、数据存储路径和数据库信息后,Nextcloud 私有云就搭建好了。如果是严格按照《树莓派结合 frp、Nextcloud 搭建私有云之安装前的准备》进行的前期准备工作,那么:
      • 数据存储路径:[path]/disk
      • 数据库:MariaDB
      • 数据库用户名: nobody
      • 数据库密码:[your-password]
    2. 系统界面。
    屏幕快照 2017-06-29 下午1.41.02副本.png
  • 树莓派(Raspberry Pi)入门实战记录之 SSH 局域网无线连接

    树莓派(Raspberry Pi)入门实战记录之 SSH 局域网无线连接

    树莓派作为一台完整的微型电脑,可玩性很高。树莓派使用 microSD Card 作为存储介质,安装系统就是把系统镜像写入 microSD Card 中。将写好系统的 microSD Card 放入树莓派的 microSD Card 插槽中,通电,就完成了树莓派启动。我手中的树莓派是 Raspberry Pi 3 Model B 型,集成了蓝牙和 WIFI 模块。

    在 Mac 下用 ApplePi-Baker 安装树莓派系统非常方便,ApplePi-Baker 的界面如下图所示:

    WechatIMG1.jpeg
    1. 左侧选择要写入树莓派系统的 microSD Card;
    2. 右侧上方小窗口 IMG file 选择下载好的树莓派系统镜像(我一般使用树莓派官方制作的 RASPBIAN 镜像,可以从树莓派官网下载到);
    3. 然后点击右侧上方小窗口中的 Restore Backup 按钮,等进度条跑满就完成了树莓派系统的制作。

    接下来的操作就是将写好系统的 microSD Card 装进树莓派,开机。

    如果有一台显示器,可以选择相应树莓派操作系统的图形界面版本,将显示器、鼠标、键盘接入树莓派来实现普通桌面电脑的操作体验。我拿到树莓派的时候手边并没有可用的显示器,也并不打算通过外接键盘、鼠标的方式实现对树莓派的控制,所以下面介绍通过 SSH 方式连接树莓派。如果通过 SSH 方式连接树莓派,在写好系统后要新建一个名为 SSH 的文件放入 microSD Card 的根目录,以打开树莓派的 SSH 功能。然后进行如下操作:

    1. 将树莓派通过网线连接路由器;
    2. 通过路由器的管理界面查看树莓派目前使用的 IP 地址,记下这个地址(我的是:192.168.0.15);
    3. 树莓派的默认用户是 pi,密码是 raspberry ,通过以下命令可以连接到树莓派:ssh pi@192.168.0.15 WX20170415-215417@2x.png

    经过上面三步已经通过 SSH 方式连接到了树莓派,接下来我们可以让树莓派通过无线连接方式连接到路由器(当然得是无线路由器)。我使用的是树莓派官方制作的 RASPBIAN 系统,选择其他系统可能操作不同。

    1. 查看可用的网路,必须使用 sudo (这步非必须,如果知道无线路由器的 ESSID 的话): sudo iwlist wlan0 scan 记下要连接的无线路由器的 ESSID:WX20170415-220916@2x.png
    2. 编辑 /etc/wpa_supplicant/wpa_supplicant.conf,添加无线网络配置: network={ ssid="Targaryen-Cloud" psk="your-password" }
    3. 重启系统,拔掉网线,通过路由器管理界面可以看到树莓派已经通过新的无线方式连接到路由器了。

    这一步结束后路由器可能会为树莓派分配新的 IP 地址,所以 SSH 连接树莓派时注意切换新的 IP 地址!

  • 在树莓派上安装 Docker 记录

    在树莓派上安装 Docker 记录

    树莓派默认源中的 Docker 版本太老了,一些 Docker 的新特性无法尝试,这里尝试在树莓派上安装新版本的 Docker。安装方法主要参考了开源中国的一篇文章 《Raspberry-jessie Docker 安装记》。如果去看原文并且也只是想安装 Docker 的话 ,建议从原文的第 5 步开始看起,前面是作者的试错过程。这里将可以成功在树莓派上安装新版本 Docker 的关键步骤整理如下:

    1. 添加源到系统,这里使用的是阿里的源,将 debhttp://mirrors.aliyun.com/docker-engine/apt/reporaspbian-jessie main 加入到系统 /etc/apt/sources.list 文件中。
    2. 将 key F76221572C52609D (这 key 是在添加源后执行 sudo apt-get update 的警告信息中获得的)添加到系统 apt-key 列表:gpg -a --export F76221572C52609D | sudo apt-key add -
    3. 安装 Dockersudo apt-get update sudo apt-get install docker-engine

    至此,完成了在树莓派上安装新版本 Docker 的全部过程!

    nature-2129493_1920.jpg