0%

树莓派的应用

1、搭建 LAMP 服务器

LAMP(Linux, Apache, MySQL, PHP)

1、安装 Apache

安装

1
sudo apt-get install apache2

安装成功后浏览器访问 http://localhost (也可以直接在浏览器输入你树莓派的IP地址),如果看到以下页面就表示安装成功。

安装 Apache-1

默认主页在 /var/www/html 目录下

1
2
3
4
cd /var/www/html
ls -al
# 修改文件权限
sudo chmod 777 /var/www/html

安装 Apache-2

设置 utf-8 编码,修改 /etc/apache2/conf-available/charset.conf 配置文件,添加下列语句

1
AddDefaultCharset UTF-8AddDefaultCharset UTF-8

2、安装PHP

安装

1
sudo apt-get install php

验证

1
2
# 查看PHP版本
php -v

测试PHP

1
2
3
4
cd /var/www/html
sudo rm index.html
sudo touch index.php
sudo vi index.php

在index.php中输入

1
2
3
<?php echo "Hello World!"; ?>
<?php echo date('Y-m-d H:i:s'); ?>
<?php phpinfo(); ?>

在浏览器中访问 http://localhost

安装PHP

3、安装 MySQL

安装

1
2
3
4
5
6
7
8
# 安装MySQL
sudo apt-get install mariadb-server php-mysql

# 初始化配置
sudo mysql_secure_installation

# 查看运行状态
sudo service mysql status

遇到的问题

1、mysql 安装失败

安装 MySQL-1

解决方法

可能是因为更换源引起的,我换回国外源就可以安装了。

2、mysql 登录无权限

安装 MySQL-2

1
2
# 使用超级用户进入mysql
sudo mysql
1
2
3
4
5
# 选择mysql数据库
use mysql;

# 修改用户验证方式及密码
update user set authentication_string=password("yangSHIFA12345"),plugin='mysql_native_password' where user='root';
1
2
# 修改完验证方式后初始化数据库
sudo mysql_secure_installation

安装 phpmyadmin

官网下载安装包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 将安装包复制到 /var/www/html
sudo cp /home/pi/Downloads/phpMyAdmin-4.9.6-all-languages.tar.gz /var/www/html/

# 解压
cd /var/www/html/
sudo tar xzf phpMyAdmin-4.9.6-all-languages.tar.gz

# 删除安装包
sudo rm phpMyAdmin-4.9.6-all-languages.tar.gz

# 给文件夹重命名
sudo mv phpMyAdmin-4.9.6-all-languages phpMyAdmin

# 重启 apache2
service apache2 restart

访问 http://localhost/phpMyAdmin ,输入数据库用户名(root)和密码(YourPassWord)登录

登录phpMyAdmin-1

登录phpMyAdmin-2

phpmyadmin 功能完善

在主页面下方会提示“功能不完善”

完善phpMyAdmin功能

警告1:

点击查找原因,会提示创建名为phpmyadmin 的数据库,点击创建即可。

警告2:

修改配置文件 phpMyAdmin/libraries/config.default.php

1
2
3
sudo vi /var/www/html/phpMyAdmin/libraries/config.default.php
# 不熟悉 vi 可以使用 nano
sudo nano /var/www/html/phpMyAdmin/libraries/config.default.php

找到 $cfg['blowfish_secret'] = ''; 修改为 $cfg['blowfish_secret'] = 'd456g465df132sf48sdf489sdfgtwe78twerf32wer1ff'; (可以是随意非空字符 建议长一点,不然主页还会提示太短)

警告3:

原因:在 phpMyAdmin 目录下没有 tmp 文件夹,或者对 tmp 文件夹的权限不足。

1
2
3
cd /var/www/html/phpMyAdmin/
sudo mkdir tmp
sudo chmod 777 tmp

4、Pi DashBoard

在安装好 ApachePHP 后就可以搭建一个树莓派的运行信息页面

安装 Git

1
sudo apt-get install git

Git 下载 Pi DashBoard

1
2
3
cd /var/www/html
sudo git clone https://github.com/spoonysonny/pi-dashboard.git
sudo chown -R www-data: pi-dashboard

完成后浏览器访问 http://localhost/pi-dashboard/ 就可以看到树莓派运行信息页面

5、内网穿透

使用花生壳进行内网穿透

1、在花生壳官网下载树莓派版本安装包(要下载树莓派系统对应版本,否则无法安装

2、在树莓派上安装花生壳

1
sudo dpkg -i phtunnel_5_0_rapi_armhf.deb

image-20210311111012787

3、花生壳命令

1
phddns  |start|status|stop|restart|reset|enable|disable|version

4、配置花生壳

打开配置网址,使用SN码登录,默认密码 admin,登录后激活账号

在内网穿透中新增映射即可

5、遇到的问题

1、Apache 中文乱码

问题描述:

/var/www/html/ 目录下的中文文件以及文件中的中文都乱码了。

解决方法一:

HTML 文件的 <head> 中添加字符编码

1
2
3
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

解决方法二:

修改 /etc/httpd/conf/httpd.conf 文件

1
AddDefaultCharset ISO-8859-1

改为

1
2
# AddDefaultCharset ISO-8859-1
AddDefaultCharset off

2、搭建个人网站

使用 WordPress 搭建个人网站

1、安装 WordPress

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 删除 /var/www/html/ 下的文件
cd /var/www/html/
sudo rm *

# 下载 WordPress
sudo wget http://wordpress.org/latest.tar.gz

# 将 lastest.tar.gz 文件中 wordpress 文件夹下的文件解压到当前目录
sudo tar xzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz

# 查看当前目录结构
tree -L 1

# 修改文件所有者
sudo chown -R www-data: .

2、配置WordPress数据库

运行 mysql

1
sudo mysql -u root -p

创建数据库

1
create database wordpress;

给用户授权(注意是你的密码)

1
2
GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
FLUSH PRIVILEGES;

3、配置WordPress

浏览器访问 http://localhost/ 可以看到 WordPress 选择语言的页面

WordPress选择语言

接下来配置数据库信息

配置数据库信息

接下来设置用户名和密码,完成后访问 http://localhost/wp-admin/ 就可以看到使用 WordPress 搭建的网站

站点管理页面

4、让 WordPress 有单独的文件夹

参考官网教程

1、修改 WordPress 配置

WordPress 管理页面中修改 WordPress地址站点地址 ,如果前期已经给树莓派分配了固定IP的话可以将 localhost 改成树莓派的IP地址,然后保存更改

配置WordPress站点地址

2、在根目录下安装好 WordPress 后将所有文件移到子文件夹下

1
2
3
4
5
6
cd /var/www/html
sudo mkdir /var/www/tmp
sudo mv ./* /var/www/tmp/
sudo mkdir WordPress
sudo mv /var/www/tmp/* WordPress/
sudo rm -r /var/www/tmp

3、创建 .htaccess 文件

1
2
3
cd /var/www/html
sudo touch .htaccess
sudo vi .htaccess

并修改内容

1
2
3
4
5
6
7
8
9
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /WordPress/
RewriteCond %{REQUEST_URI} !^/WordPress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /WordPress/$1
RewriteRule ^(/)?$ WordPress/index.php [L]
</IfModule>

3、文件共享服务

安装 Samba

1
2
3
4
5
6
# 安装 Samba
sudo apt-get install samba samba-common-bin
# 添加 Samba 用户
sudo smbpasswd -a pi
# 配置 Samba
sudo nano /etc/samba/smb.conf

在文件末尾添加配置

1
2
3
4
5
6
7
8
[Pulic Storage]
path = /media/pi/GM
comment = Public Storage
valid users = pi
writeable = yes
browseable = yes
create mask = 0777
public = yes

重启 Samba服务

1
service smbd restart

PCWin+R 输入 \\192.168.1.150 访问共享文件服务

4、搭建FTP服务

1、安装vsftpd

1
sudo apt-get install vsftpd

2、配置vsftpd

1
sudo nano /etc/vsftpd.conf

修改内容如下

1
2
3
listen=YES
listen_ipv6=NO
utf8_filesystem=YES

3、完善服务

修改完成后重启 vsftpd 服务

1
service vsftpd restart

设置开机启动 vsftpd 服务

1
2


5、搭建 Minecraft Server

搭建一个 《我的世界》服务器 与舍友击剑。

使用 mcrcon (A client for handling Remote Commands (RCON) to a Minecraft server.) 实用程序连接 Minecraft

1、配置 mcrcon 所需环境

1、安装 build-essential 工具包

1
sudo apt install git build-essential

2、配置 raspberry ,开启GL驱动程序:

1
sudo raspi-config

Advance Options -> GL Driver -> GL (Fake KMS) 完成后重启树莓派

开启GL驱动程序-1

开启GL驱动程序-2

开启GL驱动程序-3

3、安装 Java 运行环境

一般 Raspbian Os 都会自带 java ,这里不再提供安装教程

2、创建 Minecraft 用户

为了安全起见,Minecraft 不在 root 用户下运行,新建一个 minecraft 系统用户和组来运行 Minecraft 服务器

1
2
3
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
# 为 minecraft 用户添加密码
sudo passwd minecraft

切换到 minecraft 用户,安装 Minecraft

1
sudo su - minecraft

在用户主目录创建两个目录

  • tools 目录用来存储 mcrcon 客户端和备份脚本
  • server 目录用来存储 Minecraft 服务器及数据
1
mkdir -p ~/{tools,server}

3、下载和编译 mcrcon

1
2
3
4
5
6
7
8
9
# 下载
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git

# 编译
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c

# 验证
./mcrcon -h

4、下载并配置 Minecraft 服务器

官网下载地址

使用浏览器下载

或者使用 wget 下载

1
wget https://launcher.mojang.com/v1/objects/f02f4473dbf152c23d7d484952121db0b36698cb/server.jar -P ~/server

配置 Minecraft 服务器

1
2
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui

首次启动,服务器将执行一些操作并创建server.propertieseula.txt文件并停止。并提示你要同意Minecraft EULA

1
2
3
[16:22:43] [main/ERROR]: Failed to load properties from file: server.properties
[16:22:44] [main/WARN]: Failed to load eula.txt
[16:22:44] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

同意 Minecraft EULA

1
nano ~/server/eula.txt

同意Minecraft EULA

编辑 server.properties 文件以启用 rcon 协议并设置 rcon 密码

1
nano ~/server/server.properties

修改下列几行

1
2
3
rcon.port=25575
rcon.password=[YOUR PASSWORD]
enable-rcon=true

各参数含义详情参考 server.properties

5、创建系统服务文件

使用 pi 用户在 /etc/systemd/system/ 中创建一个名为 minecraft.service 的文件

1
sudo nano /etc/systemd/system/minecraft.service

填写下列内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx768M -Xms512M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p [YOUR PassWord] stop
[Install]
WantedBy=multi-user.target

重新加载 systemd 配置

1
sudo systemctl daemon-reload

启动 Minecraft 服务器

1
sudo systemctl start minecraft

查看 Minecraft 服务器运行状态

1
sudo systemctl status minecraft

查看 Minecraft 服务器日志

1
tail -f /opt/minecraft/server/logs/latest.log

Minecraft 服务器能够自动启动

1
sudo systemctl enable minecraft

访问 Minecraft 控制台

1
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p [YOUR PASSWORD] -t

6、创建配置备份

创建一个备份 Shell 脚本和 cronjob来自动备份 Minecraft 服务器

切换到 minecraft 用户

1
sudo su - minecraft

创建备份脚本

1
nano /opt/minecraft/tools/backup.sh
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
function rcon {
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p [YOUR PASSWORD] "$1"
}

rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F_%R).tar.gz /opt/minecraft/server
rcon "save-on"

## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete

修改文件属性

1
chmod +x /opt/minecraft/tools/backup.sh

创建 cron 作业,每天23:00运行备份脚本

1
crontab -e
1
0 23 * * * /opt/minecraft/tools/backup.sh

6、制作游戏机

1、烧录LAKKA系统

下载 LAKKA 镜像