要加快搭建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的官方文档:
然后去GitHub查看最新版本,找到 blessing-skin-server-xxx.zip
名称的Release压缩包下载链接
使用任意一种方式(手动下载上传或者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的插件……怎么打不开??
好吧,看来需要配置一下插件更新源……很可惜官方列表上的源我一个都用不了(虽然我的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皮肤站小记》上的一个想法