搭建Blessing Skin皮肤站小记

要加快搭建MC服务器的节奏了!

考虑到和朋友们玩MC,肯定要搭建一套用户管理系统。

此前用过LittleSkin,久仰Blessing Skin大名,了解到了内建Yggdrasil API的三方实现,通过插件搭配HMCL启动器可以很好地实现私服登录+皮肤应用,便决定先搭建一个Blessing Skin了。


Blessing Skin是标准的PHP程序,数据库程序支持MariaDB/MySQL、PostgreSQL和SQLite3,一般的私人小服用SQLite数据库就可以了,可随网站的目录一同备份/迁移,相当方便。

这意味着它不需要特别高的权限要求,只要有PHP环境,几乎就可以安装运行了。

(*题外:WordPress也在核心层开始支持SQLite数据库实现了,能节省很多资源占用,感觉是个不错的趋势)


前置设置

这次还是用Webinoly安装,不过就没用FRP内网穿透了(其实并不占什么性能,装在哪里都能运行)

Blessing Skin需要开启以下PHP扩展

  • OpenSSL >= 1.1.1 (TLS 1.3)
  • PDO
  • Mbstring
  • Tokenizer
  • GD
  • XML
  • Ctype
  • JSON
  • fileinfo
  • zip

打开Webinoly的opt配置目录,使用编辑器修改 /opt/webinoly/templates/source/php.ini 文件,搜索extension关键词,逐一去掉注释(可以用WinSCP直接编辑)

extension=fileinfo
extension=gd
extension=mbstring
extension=exif
extension=openssl
extension=pdo_sqlite
extension=sqlite3

然后重新设置php并检查扩展(只是以templates的source配置覆盖)

sudo webinoly -server-reset=php
php -m

由于默认情况下PHP没有安装SQLite3的驱动,需要从apt安装,再通过php -m命令查询是否开启 pdo_sqlite3 模块。

sudo apt-get install php-sqlite3
php -m

如果安装以后没有查询到,可能需要在apt的php-sqlite添加版本号(如:php-8.1-sqlite3)

创建站点

使用site命令创建php站点并添加ssl证书

sudo site example.com -php
sudo site example.com -ssl-on -ssl-key=/path/cert.key -ssl-crt=/path/cert.crt -ssl-ocsp=/path/cert.pem

SSL配置可参考Webinoly的官方文档:

Site Management for NGINX Server with Webinoly
Create site HTML PHP MySQL WordPress Reverse Proxy with NGINX server FastCGI Cache Redis optimization SSL Certificates Lets Encrypt
webinoly.com

然后去GitHub查看最新版本,找到 blessing-skin-server-xxx.zip 名称的Release压缩包下载链接

Release 6.0.2 · bs-community/blessing-skin-server · GitHub
Web application brings your custom skins back in offline Minecraft servers. – Release 6.0.2 · bs-community/blessing-skin-server
github.com

使用任意一种方式(手动下载上传或者curl解压)将Blessing Skin运行文件放到 /var/www/example.com/htdocs/ 目录

顺便提前创建好需要使用的SQLite的数据库,位置随意,但下文会用到

touch ./sql.db3

打开网站的Nginx配置文件 /etc/nginx/sites-enabled/[example.com],找到root行编辑运行目录:

root /var/www/example.com/htdocs/public;

然后打开域名 example.com/setup 打开安装向导,根据向导填写

选择SQLite,数据库地址填写localhost,在数据库名称填写刚刚创建的SQLite数据库文件路径。

然后填写管理员的信息,不出差错的话,应该就可以正常使用了~


插件配置

雄心勃勃打开插件市场,下载Yggdrasil API的插件……怎么打不开??

插件市场无法打开 / Unable to load plugin market / Undefined array key “packages” · Issue #454 · bs-community/blessing-skin-server · GitHub
Blessing Skin 版本 6.0.2 PHP 版本 8.1 出现问题时所使用的浏览器 Chrome, Microsoft Edge 您正在使用的 Web Server Nginx 您正在使用宝塔吗? 是 出现了什么问题? 更新为6.0.2后插件市场无法正常打开 错误日志 Undefined array key “packages” 详细信息 [1] app/Http/Controllers/MarketController.php#L91 [2] app/Htt…
github.com

好吧,看来需要配置一下插件更新源……很可惜官方列表上的源我一个都用不了(虽然我的OpenSSL版本并没有问题)

再打开刚才的网站目录,编辑 .env 文件(嗯……这个文件是隐藏的点文件,它的文件名就叫 .env)

在末尾加入下列代码:

PLUGINS_REGISTRY=https://bs-plugin.mcskin.cn/plugins-dist/registry_{lang}.json

再去访问后台的话应该可以加载了,不过偶尔还是有抽风的现象,因地区网络环境而异吧

批量导入

*同名插件,取自自带说明

在 Blessing Skin 安装的网站根目录下执行此命令:

php artisan texture:import {uploader} {directory}

其中 uploader 参数为指定材质的上传者,值为上传者的 UID; directory 参数为材质文件所在目录。

此外,还可以指定 --cape 参数表示该目录下的 所有 材质文件为披风文件; 可指定 --gbk 参数来进行文件名编码转换,如果您的系统是 Windows 系统并遇到乱码问题,可以尝试这个选项。

《搭建Blessing Skin皮肤站小记》上的一个想法

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注