Blessing Skin皮肤站搭建/备份记录
Blessing Skin是什么
你是否因在离线模式下运行的Minecraft服务器中丢失自定义皮肤而感到困惑?现在,借助Blessing Skin的帮助,你可以轻松地找回它们!
Blessing Skin是一个网络应用程序,在这里你可以上传、管理和分享你的自定义皮肤和披风!与修改资源包不同,游戏中的每个人都可以看到彼此的不同皮肤(当然,他们也应在同一个网站上注册)。
Blessing Skin是一个用PHP编写的开源项目,这意味着你可以自由地在自己的网络服务器上部署它!
简而言之,它是一个适用于 Minecraft服务器 的,可让用户上传、管理和分享他们的 Minecraft 皮肤和披风的 Web 应用程序
配合某些插件可以做到 让玩家仅可使用皮肤站账号进入服务器
Github地址:bs-community/blessing-skin-server
官方文档地址:Blessing Skin 手册 | Blessing Skin 用户手册
开始安装
我的环境是一个 1H512M
的 Ubuntu 22.04,磁盘存储仅有5GB
但是这样的环境也能搭成功,可见Blessing Skin之轻量其实是没钱买更高配的机子,大家别学我
需要准备的东西:
- 一台能够搭建网站的服务器
- 一个自己的域名
- 一台电脑
- 一个脑子
系统更新
先换源,如果你的机子是海外的可以不用换
sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.tuna.tsinghua.edu.cn@g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/http:/https:/g' /etc/apt/sources.list
更换为清华源,其中 中间那行是更换 安全更新 的源。由于镜像站更新有时不及时,使用镜像源的安全更新源可能会导致你无法及时获取到最新的安全更新,介意的可以不换
然后一套连招更新系统
# 更新软件源 && 更新软件包 && 删除旧软件包
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
安装一些小工具
sudo apt install vim git zip -y
安装PHP及其相关拓展
sudo apt install apache2 php php-gd php-mbstring php-xml php-zip php-pgsql -y
验证php版本:
php -v
下载 blessing-skin-server
记得到 GitHub Releases 页面确认最新版的下载链接
wget https://github.com/bs-community/blessing-skin-server/releases/download/6.0.2/blessing-skin-server-6.0.2.zip
下不动的可以在前面加个镜像:
wget https://mirror.ghproxy.com/github.com/bs-community/blessing-skin-server/releases/download/6.0.2/blessing-skin-server-6.0.2.zip
解压缩
sudo mkdir /var/www/blessing-skin
sudo unzip blessing-skin-server-6.0.2.zip -d /var/www/blessing-skin/
修改文件权限
sudo chown -R www-data:www-data /var/www/blessing-skin
生成密钥
cd /var/www/blessing-skin/
sudo cp .env.example .env
sudo php artisan key:generate
配置 Apache
编写配置文件
如果你希望给你的皮肤站启用 HTTPS
,那么请跳到 配置SSL证书(HTTPS)
sudo vim /etc/apache2/sites-available/blessing-skin.conf
在编辑器中粘贴如下内容:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/blessing-skin/public
<Directory /var/www/blessing-skin/public>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
配置SSL证书(HTTPS)(推荐)
这里我们使用 Let’s Encrypt 来创建一个免费证书
安装 Python
apt install python3 pip
pip换源
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
安装必要依赖
pip install setuptools-rust
安装证书生成工具
pip install certbot
设置域名解析
若想使用Let's Encrypt
签发证书,就必须将涉及的域名先解析到服务器才行。
例如我们将预申请SSL证书域名 和 服务器IP地址的信息整理如下:预申请SSL证书域名 服务器IP地址 yourdomain.com 114.51.41.9
在申请证书之前,须将该域名yourdomain.com
的A记录解析到114.51.41.9
。
在申请SSL证书的时候,我们需要在114.51.41.9
服务器上操作certbot才行。
- 生成证书
先停止Apache服务(因为Apache会占用80端口)
随后使用sudo systemctl stop apache2
上述命令的意思是,启动独立的web服务进行身份验证,为certbot certonly --standalone -d yourdomain.com
yourdomain.com
申请/续订SSL证书,但是不需要自动安装。
在此过程中,会弹出很多的选项,让我们输入,大概流程为:
- 会让我们输入邮件地址,将用于续订和安全通知。
- 会让我们确定是否向
ACME server
注册。 - 是否分享你的邮件让EFF共享。
如果申请成功后,会在/etc/letsencrypt/live/
下,以域名为目录,里面存储的证书信息,并且会告知过期时间是多久。
以我的为例,我的域名是 skin.mc.qiusyan.top
,所以它生成的证书会在 /etc/letsencrypt/live/skin.mc.qiusyan.top
目录下
它会自动生成两个文件:privkey.pem
和 fullchain.pem
执行以下指令:
# 创建证书文件夹
mkdir /var/www/blessing-skin/ssl
# 将证书文件复制进去,自行修改对应目录
cp /etc/letsencrypt/live/skin.mc.qiusyan.top/fullchain.pem /var/www/blessing-skin/ssl/
cp /etc/letsencrypt/live/skin.mc.qiusyan.top/privkey.pem /var/www/blessing-skin/ssl/
随后执行如下操作:
修改文件权限
sudo chown www-data:www-data -R /var/www/blessing-skin/ssl
启用 Apache2 的 SSL 模块
sudo a2enmod ssl
编辑
/etc/apache2/sites-available/blessing-skin.conf
配置文件
注意:第十二行处的 ServerName后的域名需要修改为你自己的皮肤站域名<IfModule mod_ssl.c> <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/blessing-skin/public # 此处修改为你自己的皮肤站域名 ServerName your_domain.com SSLCertificateFile /var/www/blessing-skin/ssl/fullchain.pem SSLCertificateKeyFile /var/www/blessing-skin/ssl/privkey.pem <Directory /var/www/blessing-skin/public> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
重启 Apache2 服务使配置生效
sudo systemctl restart apache2.service
配置站点
# 禁用默认站点
sudo a2dissite 000-default.conf
# 启用 blessing-skin 站点
sudo a2ensite blessing-skin.conf
# 启用 rewrite 模块
sudo a2enmod rewrite
# 重新加载 Apache 服务使配置生效
sudo systemctl restart apache2.service
安装 & 配置 Postgresql
# 安装 postgresql
sudo apt install postgresql -y
# 切换到数据库用户
sudo su postgres
# 进入数据库管理工具
psql
# 设置数据库密码,牢记你的密码,后面会用到
\password
# 创建皮肤站数据库
CREATE DATABASE blessingskin;
# 退出管理工具
\q
修改 /etc/postgresql/14/main/postgresql.conf
文件第 60 行取消注释,允许本地登入数据库。
listen_addresses = 'localhost' # what IP address(es) to listen on;
重启服务使配置生效:
sudo systemctl restart postgresql.service
安装 Redis (可选)
sudo apt install redis php-redis
配置请参考 配置文件介绍 - Redis 相关
运行安装向导
现在访问主机 IP 可以看到欢迎页面了,记得选择数据库类型为 PostgreSQL:
恭喜,你的皮肤站已经部署完成!
更多的内容就自己去探索吧~
善用官方文档与搜索引擎:Blessing Skin 手册 | Blessing Skin 用户手册
备份 & 恢复相关
咳咳,这一段其实才是我写这篇文章的初衷
写一下备份&恢复相关的步骤免得自己忘了
好的,假设你有一个已经架设好了的 Blessing Skin 皮肤站,然而现在遇到了一个问题使得你需要 备份你的数据并且日后要恢复正常运行,那么就往下看
备份数据
备份数据库
先切换到 postgres
用户并且切换到对应目录:
sudo su postgres
cd
然后使用 pg_dump
命令备份数据库:
pg_dump -U postgres blessingskin > blessingskin_backup.sql
此处指令的 blessingskin
为你要导出的数据库名称,blessingskin_backup.sql
是备份后的文件名称
导出之后可以使用 pwd
指令来查看当前目录,你的备份文件也会在这里。随后使用 Filezilla
之类的 SFTP 软件将其下载到本地即可。
备份站点文件
记得先切换回原用户
切换到你的皮肤站站点目录的上一级目录
cd /var/www
将其打包 or 压缩
打包:
tar -cvf blessingskin.tar blessingskin
压缩:
使用7z指令压缩需要安装
p7zip-full
软件包7z a -t7z -r blessingskin.7z /var/www/blessingskin
二者选其一即可。
随后将打包后的文件下载到本地就完成备份了。
如果你的服务器是像我那样的小破机子就只能用打包了,用不了7z压缩不是都说了不要学我吗啊喂
恢复数据
你的环境应该是全新的
准备工作
# 换源
sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.tuna.tsinghua.edu.cn@g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/http:/https:/g' /etc/apt/sources.list
# 更新软件源 && 更新软件包 && 删除旧软件包
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
# 安装工具
sudo apt install vim git zip p7zip-full -y
# 安装php及其相关拓展
sudo apt install apache2 php php-gd php-mbstring php-xml php-zip php-pgsql -y
# 安装postgres
sudo apt install postgresql -y
# 切换到数据库用户
sudo su postgres
# 进入数据库管理工具
psql
# 设置数据库密码,建议和之前的密码一样,如果不记得了可以去查看皮肤站站点文件内.env文件中的DB_PASSWORD配置项
\password
# 创建皮肤站数据库,建议和之前的数据库名称一样,如果不记得了可以去查看皮肤站站点文件内.env文件中的DB_DATABASE配置项
CREATE DATABASE blessingskin;
# 退出管理工具
\q
随后进入数据库恢复工作:
记得先将你的备份文件
blessingskin_backup.sql
上传到/var/lib/postgresql
目录下
# 切换到数据库用户
sudo su postgres
# 切换到对应工作目录
cd
# 恢复备份
psql -U postgres -d blessingskin -f blessingskin_backup.sql
# blessingskin 是你想将备份文件导入的数据库的名称,blessingskin_backup.sql是你备份的文件
然后进入 /var/www
目录下,并且将你的 皮肤站站点文件备份
上传至此
解压缩至当前目录:
.tar
文件# blessingskin.tar 请自行更改为对应文件名 tar -xvf blessingskin.tar
.7z
文件# blessingskin.7z 请自行更改为对应文件名 7z x blessingskin.7z -r -o/var/www/blessingskin
接下来的步骤就是配置 Apache 了,按照 配置 Apache 来就行了
配置完Apache之后,恢复工作就大功告成了!
有啥问题的可以在当前页面留言~ 💖