• Minecraft个人服务器搭建自己的皮肤站并实现外置登录更换自定义皮肤组件


    Minecraft个人服务器搭建自己的皮肤站并实现外置登录更换自定义皮肤组件

    大家好,我是艾西有不少小伙伴非常喜欢我的世界Minecraft游戏,今天小编跟大家分享下Minecraft个人服务器怎么设置皮肤站。

    Minecraft皮肤站是什么?其实官网就有皮肤站,在正版用户选择正版的登录后,MC客户端就会到官方皮肤站内下载用户的皮肤。而外置登录,就是用户在没有正版账号的情况下,使用自己的账号验证,达到用户验证的目的。

    (所有操作教程必须在服务器内操作实现!!!)

    适用于:Java版本Minecraft:包括Spigot、官方版本Minecraft、Forge等。

    皮肤:本次教程使用 blessing-skin-server作为皮肤站,也是LittleSkin的开源社区版本。

    (本文中http、https、www、com等前缀后缀均以 “x”代替遵守平台规则)

    实现效果:

    用户角色皮肤管理


    (选择皮肤激活)

    你还可以安装很多插件,实现邀请码注册、外置登录等等功能

    外置登录:基于皮肤站使用Yggdrasil API实现外部登录

    外置登录选项角色

    最终效果:实现的效果是搭建一个网站,用户可以注册账号,并登录系统进行皮肤的上传、下载以及激活皮肤为角色皮肤。皮肤站和外置登录配合达到和正版登录一样的效果:

    允许用户注册账号

    允许用户上传和自定义自己游戏皮肤

    并且方便服务器管理者规范玩家行为(防止用户频繁换“马甲”)

    准备工具

    服务器一台拥有固定IP及稳定的网络环境,操作系统Debian、CentOS都可以。不推荐使用Windows Serve

    Nginx/Apache:推荐使用Nginx环境

    PHP:PHP版本推荐7以上(最新皮肤站需要PHP8)

    Minecraft服务器端:如果没有搭建MC服务器可在小编主业搜我的世界查询搭建教程

    服务器选择:根据自己个人的使用途径去选择适合自己的服务器,个人玩家云机器 4H8G。对游戏整体的画质以及操作流畅度有要求对外开放的建议I9系列物理服务器(独享资源)

    服务器系统选择:Debian/Ubuntu

    (因windows暂用资源会大些对服务器整体的性能不能发挥到极致)

    重置服务器

    方法一:宝塔搭建【推荐小白】:可视化部署LEMP环境,并可视化部署皮肤站和外置登录操作。

    如果不会操作宝塔的百度一下,宝塔搭建Ngiinx、PHP和MariaDB/MySQL很简单一键安装部署可视化搭建:

    BlessingSkin需要启用一些PHP函数,但是宝塔面板默认是禁用的,需要在宝塔面板内删除选项:


    需要启用的函数:symlink、readlink、putenv、Realpath 

    安装扩展:fileinfo

    搭建BlessingSkin

    现在正式开始搭建,在宝塔的网站选项,新建一个网站:


    域名:有域名解析到服务器填入你自己的域名即可;没有的话就填IP。

    PHP版本:选择PHP7.4、8.x(6.0以上版本Blessing需要使用PHP8.x)

    之后,进入网站根目录,下载并解压最新版本的BlessingSkin 上传到网站根目录

    到网站设置内:追加:/public

    添加伪静态:

    location / {
          try_files $uri $uri/ /index.php?$query_string;
        }

    上传到网站根目录之后,就可以访问网站了:



    创建数据库:

    刚刚有安装MySQL,这里添加一个MySQL数据库,数据库名称已经密码随自己设置,大家在设置的时候记得自己备注记下来

    方法二编译安装【推荐大神】:编译安装LEMP环境,并命令后操作部署皮肤站和外置登录

    Nginx源码编译安装复杂一些,首先下载Nginx1.20.1的源码下载,下载到Nginx的/usr/local/src内,并解压进入:依次输入以下命令

    cd /usr/local/src
    wget 'xxxx://nginx.org/download/nginx-1.20.1.tar.gz'
    tar -xf nginx-1.20.1.tar.gz
    cd nginx-1.20.1 

    编译环境:按需求需要SSL、gzip、正则库等依赖

    开始安装一下依赖:(根据自己的服务器系统去选择以下命令输入)
    sudo apt-get install build-essential(# 安装GCC)
    sudo apt-get install libpcre3 libpcre3-dev(# 安装正则库)
    sudo apt-get install zlib1g-dev(# 安装gzip lib)
    sudo apt-get install openssl libssl-dev (# 支持OpenSSL)

    示例的操作教程是安装的:sudo apt-get install openssl libssl-dev

    预编译:首先,我们想要把Nginx以www:www用户运行,所以我这里创建一个www用户,附属于www用户组:(依次输入以下命令)

    sudo useradd www (创建一个www用户)
    sudo groupadd www(创建一个www用户组)
    sudo usermod -a -G www www( www用户归属于www用户组)

    之后,开始预编译:复制下方代码回车

    /configure \
    --prefix=/usr/local/nginx \
    --user=www \
    --group=www \
    --sbin-path=/usr/local/nginx/sbin/nginx \
    --conf-path=/usr/local/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --pid-path=/var/run/nginx.pid \
    --lock-path=/var/run/nginx.lock \
    --http-client-body-temp-path=/var/cache/nginx/client_temp \
    --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
    --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
    --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
    --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
    --with-file-aio \
    --with-threads \
    --with-http_addition_module \
    --with-http_auth_request_module \
    --with-http_dav_module \
    --with-http_flv_module \
    --with-http_gunzip_module \
    --with-http_gzip_static_module \
    --with-http_mp4_module \
    --with-http_random_index_module \
    --with-http_realip_module \
    --with-http_secure_link_module \
    --with-http_slice_module \
    --with-http_ssl_module \
    --with-http_stub_status_module \
    --with-http_sub_module \
    --with-http_v2_module \
    --with-mail \
    --with-mail_ssl_module \
    --with-stream \
    --with-stream_realip_module \
    --with-stream_ssl_module \
    --with-stream_ssl_preread_module

    预编译完成,如果你并没有通过,记得重新配置依赖。

    开始编译和安装:输入以下命令

    make -j32 (根据服务器核心数填写J后面数值,例服务器是32核,所以-j32)
    make install (编译完成,进行安装)

    注册服务:如果你是按照我的操作步骤进行编译操作的

    那么需要创建一个日志目录:输入以下命令

    sudo mkdir /var/cache/nginx (# 创建日志目录)

    为方便启动,注册服务为:输入以下命令

    vim /usr/lib/systemd/system/nginx.service

    添加内容:输入以下命令

    [Unit]
    Description=nginx
    After=network.target
      
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload

    最后启动即可:依次输入以下命令

    systemctl daemon-reload

    systemctl start nginx.service

    lsof -i:80

    PHP安装编译:

    PHP会比较麻烦,主要是依赖问题,根据Blessing Skin安装指南,我们需要PHP支持:

    OpenSSL、PDO、Mbstring、Tokenizer、GD、XML、Ctype、JSON、fileinfo、zip

    主要是GD模块,需要很多额外参数,尤其是freetype参数,所以这里编译需要注意。

    下载PHP源码:下载PHP7.4的源码到/usr/local/src下:依次输入以下命令

    cd /usr/local/src 

    wget 'xxxxx://xxx.php.net/distributions/php-7.4.22.tar.gz'
    tar -xf php-7.4.22.tar.gz

    编译依赖 Debian/Ubuntu操作系统

    需要支援Nginx和MariaDB/MySQL,同时支持gd等模块 依次输入以下命令:

    sudo apt-get install pkg-config (# 安装pkg-config)
    sudo apt-get install openssl libssl-dev (# OpenSSL的支持)
    sudo apt-get install libsqlite3-dev  (# SQL支持)
    sudo apt-get install zlib1g-dev (# zlib)
    sudo apt-get install libcurl4-openssl-dev (# OpenSSL支持)
    sudo apt-get install libpng-dev libjpeg-dev libonig-dev (# GD辅助依赖)

    之后,编译安装:libxml2、freetype。
    并把freetype编译安装地址下的lib/pkgconfig添加到pkg内,如:

    #  Freetype
    export PKG_CONFIG_PATH=/usr/local/freetype/lib/pkgconfig/

    CentOS系统:
    首先是编译安装oniguruma,并配置到pkg内,如:

    # Freetype
    export PKG_CONFIG_PATH=/usr/local/freetype/lib/pkgconfig/

    之后用软件包管理器安装:输入以下命令

    sudo yum install libxml2 libxml2-devel (# XML 库)
    sudo yum install pcre pcre-devel (# 正则库)
    sudo yum install sqlite3-devel (# SQL 库)
    sudo yum install libcurl-devel libpng-devel libjpeg-devel (#lib)
    sudo yum install freetype-devel (# GD 依赖)

    PHP预编译:输入以下命令

    ./configure \
    --prefix=/usr/local/php7 \
    --with-curl \
    --with-mysqli \
    --with-openssl \
    --with-pdo-mysql \
    --with-jpeg \
    --enable-gd \
    --enable-fpm \
    --with-fpm-user=www \
    --with-fpm-group=www \
    --enable-bcmath \
    --enable-xml \
    --with-zip \
    --enable-mbstring \
    --enable-sockets  \
    --with-zlib   \
    --enable-fileinfo \
    --enable-exif \
    --with-freetype

    如果你并没有通过,记得重新配置依赖尤其是freetype和libxml2

    全部没问题后开始编译和安装:输入以下命令

    make -j32 (根据服务器核心数填写J后面数值,例服务器是32核,所以-j32)
    make install (编译完成,进行安装)

    注册服务

    根据教程步骤操作的小伙伴需要PHP-FPM配置文件:输入命令

    sudo mv/usr/local/php7/etc/php-fpm.conf.default/usr/local/php7/etc/php-fpm.conf

    sudo mv/usr/local/php7/etc/php-fpm.d/xxx.conf.default/usr/local/php7/etc/php-fpm.d/www.conf  

    注册服务为:

    sudo vim /usr/lib/systemd/system/php-fpm.service

    添加内容:

    [Unit]
    Description=php-fpm
    After=network.target
      
    [Service]
    Type=forking
    ExecStart=/usr/local/php7/sbin/php-fpm
    PrivateTmp=true
      
    [Install]
    WantedBy=multi-user.target

    最后启动即可:输入一下代码

    systemctl daemon-reload

    systemctl start php-fpm. service

    lsof -i: 9000

    搭建下载BlessingSkin

    首先,创建一个目录,作为网站目录:

    mkdir /www/BlessingSkin -pv
    cd /www/BlessingSkin

    之后,下载BlessingSkin的发行版本,选择安装6.0.0-beta.3:

    Wget'xxxxx://github.xxx/bs-community/blessing-skin-server/releases/download/6.0.0-beta.3/blessing-skin-server-6.0.0-beta.3.zip'

    解压即可:

    unzip blessing-skin-server-6.0.0-beta.3.zip


    安装官网要求需要重命名和初始化:输入以下代码

    cp .env.example .env
    /usr/local/php7/bin/php artisan key:generate (初始化)

    配置Nginx

    vim /usr/local/nginx/nginx.conf

    查看:输入以下代码

    user  www;
    worker_processes  1;
    events {
        worker_connections  1024;
    }


    http {
        include       mime.types;
        default_type  application/octet-stream;

        sendfile        on;

        keepalive_timeout  65;

        gzip  on;

        server {
            listen       80;
            server_name  localhost;
            root /www/BlessingSkin/public;


            location / {
                index  index.php index.html index.htm;
            try_files $uri $uri/ /index.php?$query_string;
            }

            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }


            # php-fpm配置
            location ~ [^/]\.php(/|$){
                # try_files $uri =404;
                fastcgi_pass  127.0.0.1:9000;
                include fastcgi.conf;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
            }
        }
    }

    3. 提权&重载配置

    刚刚都是用root用户直接修改文件,现在把网站目录权限移交给www:

    chown www:www /www -R

    重载配置:systemctl reload nginx

    浏览器访问网站,即可看到效果:

    到这里我们就已经搭建好BlessingSkin,接下来就是初始化了,点击下一步,进入初始化参数界面:


    输入完数据库,让你设置管理员 按步骤操作

    进行访问即可使用皮肤站了

    总结:编译安装大神适用的方式其实以上步骤操作就是自己安装编译Nginx和PHP在这个过程中全部部署好在服务器后下载BlessingSkin搭建一下即可。个人建议是用宝塔会方便快捷很多,喜欢大神操作的对于Nginx和php可自行深入研究

    外置登录:使用外置登录,服务器的online-mode记得设置为true

    接下来,使用Yggdrasil API来外置登录皮肤站上操作

    首先需要配置搭建好的皮肤站(其实,说是皮肤站,倒像是个百宝箱),之后选择管理面板:

    管理面板
    进入管理面板后,选择插件市场有很多插件大家自行安装


    安装好插件后进入插件管理,勾选插件:

    会出现小齿轮点击就可以进入这个插件的管理面板:


    记住API Root中的Yggdrasil API地址,这个就是外置登录的验证地址:

    外置登录地址服务器上操作

    其次需要设置Java Minecraft服务器的启动命令,先下载最新版本的authlib-injector.jar

    下载地址:authlib-injector:xxxxx://authlib-injector.yushi.moe/

    authlib-injector下载

    之后回到Minecraft的启动界面,如果你之前的Minecraft服务器启动命令是:java -jar -Xms1024M -Xmx5120M LoliServer-1.16.5-89-server.jar

    那么,加上authlib-injector验证就是:

    java -jar -Xms1024M -Xmx5120M -javaagent:authlib-injector-1.1.39.jar=xxxx://URL LoliServer-1.16.5-89-server.jar 

    服务器也是可以正常启动的:

    客户端上操作

    最后到客户单上设置,以HCML为例,打开HMCL后,在登录里选择外置登录:

    最后应有的步骤流程:

    1、验证服务器:我们的Yggdrasil API地址

    2、用户名:我们自己皮肤站上注册的用户

    3、密码:xxxxxxxxxx

    这样,就可以看见自己的角色了(皮肤站上,事先要创建一个角色 ):

    到这里我们今天的分享就结束啦希望对有需要的小伙伴有帮助

    我是驰网艾西 拥有一台服务器可以做很多有趣的事情!

  • 相关阅读:
    双亲委派模型
    在 git 中如何配置用户信息
    StarRocks实战——首汽约车实时数仓实践
    PCB沉金包边工艺流程与主要作用经验总结
    电力物联网关智能通讯管理机-安科瑞黄安南
    运营-20.产品社区化和内容化
    Java 开发从零开始,java 基础入门传智播客网页版,Java 后端路线图
    诊断Android系统原生代码Native崩溃问题
    Vue路由与nodejs环境搭建
    2023临沂大学计算机考研信息汇总
  • 原文地址:https://blog.csdn.net/V13807970340/article/details/133611281