搭建皮肤站并实现外置登录
皮肤站是什么?其实官网就有皮肤站,在正版用户选择正版的登录后,MC客户端就会到官方皮肤站内下载用户的皮肤。 而外置登录,就是用户在没有正版账号的情况下,使用自己的账号验证,达到用户验证的目的。
本文方案
适用于:
- Java版本Minecraft:包括Spigot、官方版本Minecraft、Forge等。
皮肤站
本文使用blessing-skin-server作为皮肤站,是LittleSkin的开源社区版本。
实现效果:
用户角色管理
用户皮肤管理
选择皮肤激活
你还可以安装很多插件,实现:邀请码注册、外置登录等等功能:
最终效果
最后实现的效果是搭建一个网站,用户可以注册账号,并登录系统进行皮肤的上传、下载以及激活皮肤为角色皮肤。 皮肤站和外置登录配合,就可以达到和正版登录一样的效果:
- 允许用户注册账号
- 允许用户上传和自定义自己游戏皮肤
获取服务器
这里以雨云服务器为主
前往官网:https://www.rainyun.com优惠码:vip5r 获取注册福利
进入总览 | 雨云 (rainyun.com)后点击云服务器
然后点击购买云服务器
选择合适的服务器配置,可以先进行试用后再决定购买,同时雨云支持七天无理由退款
选择好配置后可以直接预安装APP,你也可以不预装就单装系统,自行选择好部署方案就行
预安装APP的话操控服务器的面板下面会出现这个,访问外网面板地址就可以进入宝塔了,然后下面username就是账号,密码password
同时!雨云15000人技术交流社区,学习交流,畅所欲言,遇见技术和真知 定期发布活动和白嫖福利
部署方案
准备工具
- LEMP环境:
- Linux服务器:Debian、CentOS都可以。极其不推荐使用Windows Server。
- Nginx/Apache:推荐使用NNginx环境
- MySQL/MariaDB:可以使用Linux服务器自己搭建,也可以直接买现成的。
- PHP:PHP版本推荐7以上,本文使用PHP8(最新皮肤站需要PHP8)
- Minecraft服务器端
宝塔搭建
宝塔搭建Ngiinx、PHP和MariaDB/MySQL很简单,可视化搭建:
PHP函数
宝塔是默认禁用了一些皮肤站需要的函数,我们需要前往软件商城进行开放
需要启用的函数:
- symlink
- readlink
- putenv
- realpath
并安装扩展:fileinfo扩展
搭建BlessingSkin
如果不懂怎么创建一个网站可以前往:朽丘博 - 支配生命,享受生活 (koxiuqiu.cn)
创建好站点,开始操作,其中:
- 域名:有域名解析到服务器,则填域名;否则,就填IP。
- PHP版本:选择PHP7.4、8.x(6.0以上版本Blessing需要使用PHP8.x)
之后,进入网站根目录,下载并解压最新版本的BlessingSkin(自己开梯子访问,或者是找人帮你吧)
进入后上传你下载好的压缩包,gz也是压缩包啊喂(#`O′),然后就是如图这样的
最后,到网站设置内:
- 设置运行目录:/public
- 添加伪静态
伪静态:
1 | location / { |
然后就是这样的:
之后,就可以访问网站了,直接访问你的域名或者是IP!
记得创建好数据库!
宝塔常见问题
Q:后续初始化时候,在填入数据库信息设置管理员后,出现500错误?
刷新页面。可能是宝塔的原因,实在不行重新安装部署一次
编译搭建
- [ ] 三个小章节讲解
Nginx
编译安装复杂一些,首先我们下载Nginx的源码,这里我们下载1.20.1的源码,下载到Nginx的/usr/local/src
内,并解压进入:
ssh操控进入后执行脚本
1 | cd /usr/local/src |
什么是sshj?♪(^∇^*)论如何快速了解建站 | 朽丘博 (koxiuqiu.cn)
输入脚本回车就行
编译依赖
按需求,我们需要SSL、gzip、正则库等依赖,所以这里我们安装一下依赖(#和后面文章不要输入,一条条输入回车就行,这只是注释) Debian/Ubuntu系统:
1 | # 安装GCC |
CentOS系统:
1 | # 安装GCC |
预编译
首先,我们想要把Nginx以www:www用户运行,所以我这里创建一个www用户,附属于www用户组:
1 | # 创建一个www用户 |
之后,开始预编译:
1 | ./configure \ |
编译和安装
之后,我们开始编译和安装:
1 | # 我服务器是四核,所以-j4 |
注册服务
如果你是用我的编译参数,那么需要创建一个日志目录:
1 | # 创建日志目录 |
为了之后更方便启动,我注册为服务:
1 | vim /usr/lib/systemd/system/nginx.service |
添加内容:
1 | [Unit] |
最后进行启动即可
PHP
PHP会比较麻烦,主要是依赖问题,根据Blessing Skin安装指南,我们需要PHP支持:
- OpenSSL
- PDO
- Mbstring
- Tokenizer
- GD
- XML
- Ctype
- JSON
- fileinfo
- zip
主要是GD模块,需要很多额外参数,尤其是freetype
参数,所以这里编译需要注意。
下载PHP源码
首先,还是和刚刚一样,我们需要下载PHP7.4的源码到/usr/local/src
下:
1 | # 当前为root用户 |
编译依赖
我们编译依赖很简单,需要支援Nginx和MariaDB/MySQL,同时支持gd等模块,所以: 如果你是Debian/Ubuntu:
1 | # 安装pkg-config |
之后,编译安装:libxml2、freetype。 并把freetype编译安装地址下的lib/pkgconfig添加到pkg内,如:
1 | # Freetype |
如果你是CentOS: 首先是编译安装oniguruma,并配置到pkg内,如:
1 | # Freetype |
之后用软件包管理器安装:
1 | # XML 库 |
预编译
最后,我们看看预编译PHP:
1 | ./configure \ |
编译和安装
之后,我们开始编译和安装:
1 | # 我服务器是四核,所以-j4 |
注册服务
如果你是用我的编译参数,那么需要PHP-FPM配置文件:
1 | # 创建配置文件 |
为了之后更方便启动,我注册为服务:
1 | sudo vim /usr/lib/systemd/system/php-fpm.service |
添加内容:
1 | [Unit] |
最后启动即可!
MariaDB/MySQL
搭建BlessingSkin
首先,我们创建一个目录,作为网站目录:
1 | mkdir /www/BlessingSkin -pv |
之后,下载BlessingSkin的发行版本,这里选择安装6.0.0-beta.3
:
1 | wget 'https://github.com/bs-community/blessing-skin-server/releases/download/6.0.0-beta.3/blessing-skin-server-6.0.0-beta.3.zip' |
之后解压即可:
1 | unzip blessing-skin-server-6.0.0-beta.3.zip |
安装官网要求,需要重命名和初始化:
1 | cp .env.example .env |
配置Nginx
当然,我们还要配置Nginx:
1 | vim /usr/local/nginx/nginx.conf |
查看:
1 | user www; |
提权&重载配置
刚刚我们都是用root
用户直接修改文件,现在我们把网站目录权限移交给www:
1 | chown www:www /www -R |
最后,我们重载配置:
1 | systemctl reload nginx |
然后访问站点就可以成功部署
外置登录
使用外置登录,服务器的配置文件(server.properties)的online-mode记得设置为true
,这是服务器的正版验证
直接下载我已经整合好的插件压缩包,下载:传送门
把你下载的压缩包中的文件夹上传在这个目录中就行
然后可以直接全部勾选,进行下一步
然后红框内就是我们需要的API链接
其次,我们需要设置我们的 Java Minecraft服务器的启动命令,先下载最新版本的authlib-injector.jar
,下载地址:
之后,我们回到我们Minecraft的启动界面,如果你之前的Minecraft服务器启动命令是:(例子)
1 | java -jar -Xms1024M -Xmx5120M LoliServer-1.12.2server.jar |
那么,加上authlib-injector
验证就是:
1 | java -jar -Xms1024M -Xmx5120M -javaagent:authlib-injector-1.1.39.jar=http://URL LoliServer-1.12.2server.jar |
其中:
- authlib-injector-1.1.39.jar:这个需要替换为你刚刚下载的
authlib-injector
版本。 - \=http::为上文YggdrasilAPI地址。
接下来,我们到客户端上,就可以使用外置登录了,如果是PCL了,直接皮肤站一键添加
如果是HMCL,我们到客户单上设置,以HCML为例,我们打开HMCL后,在登录里选择外置登录:
- 验证服务器:我们的
Yggdrasil API
地址 - 用户名:我们自己皮肤站上注册的用户
- 密码:我们自己皮肤站上的账号密码
记得创建好角色
结尾小言
最后,如果你还有什么不懂的地方:
- 懂得谦卑的人,不要张口就来
- 懂得合理利用搜索引擎
- 懂得不要一直伸手要
符合并且荔枝的,可以直接评论我求助!
and,QQ scan to the upper right, join our communication group.
或QQ扫取右上方,加入我们的交流群.