深度优先

这个家伙好懒,除了文章什么都没留下

0%

【树莓派】环境配置

参考:https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi/blob/master/

系统安装

开机配置

  • 允许SSH连接

在boot目录下新建一个ssh文件,不带文件后缀

  • 配置wifi文件

用同样的方法新建一个空白文件wpa_supplicant.conf(注意要删掉扩展名.txt)

用文本编辑器打开wpa_supplicant.conf,输入以下配置,可以用多个network{}来配置多个wifi:

1
2
3
4
5
6
7
8
9
10
11
12
13
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="将我替换成第一个WiFi的名字,不删除引号,不能有中文"
psk="将我替换成WiFi密码,不删除引号"
priority=将我替换成数字,数字越大代表优先级越高
}
network={
ssid="将我替换成第二个WiFi的名字,不删除引号,不能有中文"
psk="将我替换成WiFi密码,不删除引号"
priority=将我替换成数字,数字越大代表优先级越高
}

软件配置

用户配置

  • pi用户登录,默认密码为:raspberry
1
ssh pi@192.168.1.109
  • 启用root用户登录
1
2
3
sudo passwd root
sudo passwd --unlock root
su root
  • 修改pi的默认密码
1
sudo passwd pi
  • root用户远程登录
1
2
3
4
5
6
sudo nano /etc/ssh/sshd_config

# Ctrl + W 快捷键 搜索 PermitRootLogin without-password
# 修改 PermitRootLogin without-password 为 PermitRootLogin yes
# Ctrl + O 快捷键 保存
# Ctrl + O 快捷键 退出 Nano 编辑器

源配置

  • 换源,选择:bebian10 buster

https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/

1
sudo nano /etc/apt/sources.list
  • 删除原文件所有内容,用以下内容取代:
1
2
deb [arch=armhf] http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
1
sudo nano /etc/apt/sources.list.d/raspi.list
  • 删除原文件所有内容,用以下内容取代:
1
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main
  • 更新源
1
sudo apt-get update
  • 更新系统
1
sudo apt-get upgrade

安装Docker

  • 一键安装
1
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

MySql

  • 安装
1
2
3
4
docker run -p 3306:3306 --name mysql \
-v /opt/docker/mysql/conf:/etc/mysql/conf.d \
-v /opt/docker/mysql/logs:/var/log/mysql \
-v /opt/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d --restart=always ibex/debian-mysql-server-5.7
  • 配置
1
2
3
4
5
6
7
8
9
10
# 进入docker
docker exec -it mysql /bin/bash

# 进入mysql
mysql -uroot -proot

use mysql;

# 允许远程登录,修改密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

Portainer

  • 安装
1
2
3
4
5
docker run -d -p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name portainer \
docker.io/portainer/portainer
  • 配置

访问:http://ip:9000

Redis

  • 安装

下载配置:https://raw.githubusercontent.com/redis/redis/6.0.8/redis.conf

1
2
3
4
docker run -it -d --sysctl net.core.somaxconn=1024 --name redis \
-v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /opt/docker/redis/data:/data -p 6379:6379 --privileged=true \
redis:6.0.8 redis-server /etc/redis/redis.conf
  • 配置

修改opt/docker/redis/conf/redis.conf

1
2
3
4
5
6
7
# 允许远程连接
# bind 127.0.0.1
protected-mode no
# 持久化
appendonly yes
# 密码
requirepass password

Mongo

  • 安装
1
2
3
4
5
docker run -d --name mongo -p 27017:27017  \
-v /opt/docker/mongo/data:/data/db \
-v /opt/docker/mongo/conf:/data/conf \
-v /opt/docker/mongo/log:/data/log \
andresvidal/rpi3-mongodb3 mongod --auth
  • 配置
1
2
3
4
5
6
7
8
9
10
11
12
# 进入docker
docker exec -it mongo mongo admin

# 创建用户
db.createUser({ user:'admin',pwd:'password',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

# 测试用户登录
db.auth('admin', 'password');

# 测试
use testdb
db.testdb.insert({"name":"1111"})

nextcloud

  • 安装
1
2
3
4
5
6
docker run -d --name nextcloud -p 8080:80 \
-v /opt/docker/nextcloud/html:/var/www/html \
-v /opt/docker/nextcloud/apps:/var/www/html/custom_apps \
-v /opt/docker/nextcloud/config:/var/www/html/config \
-v /opt/docker/nextcloud/data:/var/www/html/data \
arm32v7/nextcloud:20.0.9-apache

版本20.0.9高版本可能不支持mysql5.7

  • 配置 /opt/docker/nextcloud/config/config.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    $CONFIG = array (
    'htaccess.RewriteBase' => '/',
    'memcache.local' => '\\OC\\Memcache\\APCu',
    'filelocking.enabled' => true,
    'memcache.locking' => '\OC\Memcache\Redis', ### 配置Redis缓存
    'memcache.distributed' => '\OC\Memcache\Redis',
    'redis' => [
    'host' => '192.168.1.109',
    'port' => 6379,
    'dbindex' => 1,
    'password' => '*******',
    'timeout' => 2,
    ],
    'apps_paths' =>
    array (
    0 =>
    array (
    'path' => '/var/www/html/apps',
    'url' => '/apps',
    'writable' => false,
    ),
    1 =>
    array (
    'path' => '/var/www/html/custom_apps',
    'url' => '/custom_apps',
    'writable' => true,
    ),
    ),
    'instanceid' => 'ocvniiym4g94',
    'passwordsalt' => '*******',
    'secret' => 'IV+*******',
    'trusted_domains' =>
    array (
    0 => '192.168.1.109:8080',
    1 => 'nextcloud.bfsdfs.com'
    ),
    'datadirectory' => '/var/www/html/data',
    'dbtype' => 'mysql',
    'version' => '20.0.9.1',
    'overwrite.cli.url' => 'http://192.168.1.109:8080',
    'dbname' => 'nextcloud_db',
    'dbhost' => '192.168.1.109:3306',
    'dbport' => '',
    'dbtableprefix' => 'oc_',
    'mysql.utf8mb4' => true,
    'dbuser' => 'nextcloud',
    'dbpassword' => '**********',
    'installed' => true,
    'filesystem_check_changes' => true #自动扫描文件
    );
  • 配置MySql

1
2
3
4
5
6
### 创建数据库
CREATE DATABASE nextcloud_db;
### 创建用户
SET PASSWORD FOR 'nextcloud'@'%' = PASSWORD('******');
### 授权权限
GRANT ALL ON nextcloud_db.* TO 'nextcloud'@'%';

frpc

  • 安装
1
2
3
4
5
6
sudo cd /opt/docker/frp/
sudo wget https://github.com/fatedier/frp/releases/download/v0.39.1/frp_0.39.1_linux_arm.tar.gz
sudo tar -zxvf frp_0.39.1_linux_arm.tar.gz
sudo rm frp_0.39.1_linux_arm.tar.gz
sudo mv frp_0.39.1_linux_arm /opt/docker/frp
sudo ./frpc -c ./frpc.ini
  • 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[common]
server_addr = ****
# 修改成公网ip
server_port = 8888
privilege_token = ******
pool_count = 2
log_file = ./frpc.log
log_level = info
log_max_days = 10

# 访问用户,与服务端用户配置文件名一致
# 与服务端用户配置文件中的token保持一致
token = *******

[xxx]
type = tcp
local_port = 9000
local_ip = 127.0.0.1
remote_port = 9000
  • 配置服务
1
2
cd /opt/docker/frp
./frpc -c ./frpc.ini
1
sudo nano /lib/systemd/system/frpc.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/docker/frp/frpc -c /opt/docker/frp/frpc.ini
ExecReload=/opt/docker/frp/frpc reload -c /opt/docker/frp/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
1
2
3
4
sudo systemctl daemon-reload
sudo systemctl enable frpc
sudo systemctl start frpc
sudo systemctl status frpc