此页面正在大修,请谨慎参考内容
以下是基于 Blessing Skin 的高校皮肤站的搭建教程:
如果你是高校 Minecraft 服务器的服主,我们推荐使用 Union 联合认证 作为服务器登录验证,并使用 MUA 皮肤站 进行用户注册与验证。但如果您的高校组织有特殊需求,也可以自建一个本校专用皮肤站并接入联合认证。
本篇教程将会使用 Ubuntu + 宝塔面板 进行教学,面向无任何网站搭建相关经验的新手,如果您有技术基础,推荐查看 官方教程。
为了确保服务器安全性和稳定性,一般选择在国内购买服务器,并购买域名用来访问皮肤站。
关于服务器选购,可以在 MUA 官方群聊公告中获取,亦或者从诸如腾讯云、阿里云等较稳定的大厂获取,且大厂往往包含服务器学生优惠。
服务器若仅限搭建皮肤站,一般 2 核 2GB 的内存就足够使用。
购买好服务器后,建议在同个服务商购买一个域名。当然你也可以将域名和服务器分两家买,但这会在后期备案造成一些不便。
以下教程假定你的服务器 IP 是 123.123.123.123。
服务器一般选择 Linux 系统,如 Ubuntu、Debian、CentOS 等。
新手一般使用宝塔面板搭建网站,安装脚本见:https://www.bt.cn/new/download.html。部分大厂在选择服务器时也可以直接选择宝塔镜像。
使用SSH连接到你的服务器,然后执行以上链接的脚本,并根据提示输入用户名密码即可安装。
宝塔面板安装完成后,你可以访问其提供的链接,并登录网页管理端。
初次登录会提示你安装环境。请选择左侧的LNMP,并在PHP下拉单中选中PHP 8.1,选择编译安装,再点击一键安装即可。
如果这个提示框不见了,你可以点击左侧菜单的“软件商店”手动安装Nginx、MySQL、PHP、phpMyAdmin。注意MySQL版本需要选5.7,PHP版本需要选8.1。
安装时间约一小时,可点击面板左上角数字查看进度。
注意:宝塔面板常有安全漏洞爆出,建议在正式环境弃用面板,自己搭环境。
安装完软件后,需要进行配置。从这里开始,可以打开官方安装手册参照阅读:https://blessing.netlify.app/setup.html
PHP
在宝塔面板“软件商店”里点击“已安装”,找到你安装的PHP,点击右侧的“设置”。
点击“安装拓展”,找到fileinfo
,点击“安装”。
点击“禁用函数”,找到symlink
、readlink
、putenv
、realpath
,(如果有这些函数)点击右边的删除,激活这些函数。
OpenSSL
在服务器上执行openssl version
,如果显示的版本小于1.1.1,则建议更新OpenSSL。教程可以参考:https://juejin.cn/post/7113193750871949349
数据库
点击左侧“数据库”,点击“添加数据库”,并进行配置。数据库名、数据库用户名和密码可以随意设置,只要你记得住。右侧utf8编码建议改成utf8mb4,访问权限为“本地服务器”。点击提交,创建数据库。
点击左侧“网站”,选择“添加站点”,在域名里填写服务器IP,比如123.123.123.123
。如果域名已备案和解析可以直接写域名。
在 https://github.com/bs-community/blessing-skin-server/releases 里,复制 blessing-skin-server-xxx.zip 的链接。点进网站根目录,使用远程下载工具,把安装包下载到网站文件夹。如果远程下载失败,可以先下载到本地再上传。下载完毕后点击文件右侧“解压”。
找到.env.example
文件,重命名为.env
。
在网站目录中,命令行执行php artisan key:generate
。
点击左侧“网站”,找到你的站点,点击右侧“设置”,点击“伪静态”,输入以下内容并保存:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
点击“网站目录”,取消勾选“防跨站攻击”。在“运行目录”下拉单中,选择/public
,保存。
点击“配置文件”,找到expires 30d;
,在上一行中删除|png
。找到include enable-php-xx.conf;
,如果xx不是81,请改成81。点击保存。
修改完上述配置后,在“软件商店”里点击“已安装”,找到你安装的PHP,点击“重启”。
打开浏览器,访问http://你的IP地址/setup
,比如http://123.123.123.123/setup
。此时如果出现“欢迎”,就可以继续了。
接着配置数据库信息。数据库名称、用户名、密码请填写刚刚设置的内容。数据库地址填写“127.0.0.1”,端口填写“3306”。完成之后点击下一步。
此时正在导入初始数据。如果一切正常,会需要你输入管理员邮箱和密码,然后就安装成功了。
如果出现file put contents(/xxx/.env): Failed to open stream: Permission denied
错误,请回到网站根目录,在.env
文件右侧点击“权限”,将所有者设置为www
,即可继续操作。
如果出现max key length is 767 bytes
错误,请在面板“软件商店”找到MySQL,点击“设置,在配置修改中找到innodb
开头的一串,并在下面加上两行,然后在“服务”中重启MySQL:
innodb_large_prefix = true
innodb_file_format = barracuda
访问皮肤站地址,登录后进入管理面板,即可设置皮肤站名称等内容。在“插件市场”中,安装Yggdrasil API插件。如果打开插件市场报错,请更换镜像源,在.env
文件中加入这一行:
PLUGINS_REGISTRY=https://d2jw1l0ullrzt6.cloudfront.net/registry_{lang}.json
安装完成后,在“插件管理”中启用此插件。
在用户中心,你可以看到皮肤站的Yggdrasil API地址。
打开https://authlib-injector.yushi.moe,下载authlib-injector.jar
,放到MC服务器文件中和server.jar的同一目录下。
将服务端 server.properties
中的 online-mode
设置为 true
。对于 1.19+ 的服务端,还需要设置 enforce-secure-profile
为 true
。
在你原有的开服命令中,加入-javaagent:authlib-injector.jar=http://Yggdrasil API地址
。
比如java -jar -Xms1024M -Xmx5120M server.jar
可以改成java -jar -Xms1024M -Xmx5120M -javaagent:authlib-injector.jar=http://123.123.123.123/api/yggdrasil server.jar
。
要使用 Union 联合认证,请在你原有的开服命令中加入-javaagent:authlib-injector.jar=https://skin.mualliance.ltd/api/union/yggdrasil
。
用新命令启动MC服务器后,玩家就需要皮肤站登录了。
皮肤站建议使用域名访问。域名购买后需要在服务商处进行ICP备案,大约需要一个月时间完成备案。备案后才可在国内服务器使用此域名,解析后在站点域名中新增即可。
可以用域名访问皮肤站后,建议为皮肤站配置SSL证书。站点设置中选择“SSL”—“Let’s Encrypt”,勾选域名,选择文件验证,点击申请即可。
皮肤站一般需要通过邀请码或限制邮箱后缀的方式限制注册人群。在皮肤站插件市场中安装“注册邀请码”或“邮箱域名限制”即可。限制邮箱注册需要在.env
中配置发件信箱信息。
如果要允许皮肤站和正版一起登录,或者多个皮肤站登录,那么需要使用multilogin插件,教程见 https://github.com/CaaMoe/MultiLogin。非bukkit/bungeecord端需要套一层Velocity用来处理登录。
欢迎高校的Minecraft皮肤站加入MUA皮肤站的Union计划。将皮肤站加入Union后,可以允许其他学校的同学通过各自皮肤站访问你的服务器,反之亦然,且不存在multilogin插件导致的不能看见互相皮肤的问题。请阅读联合认证文档了解更多,或联系@ff98sha。