Minecraft個(gè)人服務(wù)器搭建自己的皮膚站并實(shí)現(xiàn)外置登錄更換自定義皮膚組件

Minecraft個(gè)人服務(wù)器搭建自己的皮膚站并實(shí)現(xiàn)外置登錄更換自定義皮膚組件
大家好,我是艾西有不少小伙伴非常喜歡我的世界Minecraft游戲,今天小編跟大家分享下Minecraft個(gè)人服務(wù)器怎么設(shè)置皮膚站。
Minecraft皮膚站是什么?其實(shí)官網(wǎng)就有皮膚站,在正版用戶選擇正版的登錄后,MC客戶端就會(huì)到官方皮膚站內(nèi)下載用戶的皮膚。而外置登錄,就是用戶在沒有正版賬號(hào)的情況下,使用自己的賬號(hào)驗(yàn)證,達(dá)到用戶驗(yàn)證的目的。
(所有操作教程必須在服務(wù)器內(nèi)操作實(shí)現(xiàn)?。。。?/p>
適用于:Java版本Minecraft:包括Spigot、官方版本Minecraft、Forge等。
皮膚:本次教程使用 blessing-skin-server作為皮膚站,也是LittleSkin的開源社區(qū)版本。
(本文中http、https、www、com等前綴后綴均以 “x”代替遵守平臺(tái)規(guī)則)
實(shí)現(xiàn)效果:

用戶角色皮膚管理

(選擇皮膚激活)
?
你還可以安裝很多插件,實(shí)現(xiàn)邀請(qǐng)碼注冊(cè)、外置登錄等等功能

外置登錄:基于皮膚站使用Yggdrasil API實(shí)現(xiàn)外部登錄

外置登錄選項(xiàng)角色
最終效果:實(shí)現(xiàn)的效果是搭建一個(gè)網(wǎng)站,用戶可以注冊(cè)賬號(hào),并登錄系統(tǒng)進(jìn)行皮膚的上傳、下載以及激活皮膚為角色皮膚。皮膚站和外置登錄配合達(dá)到和正版登錄一樣的效果:
允許用戶注冊(cè)賬號(hào)
允許用戶上傳和自定義自己游戲皮膚
并且方便服務(wù)器管理者規(guī)范玩家行為(防止用戶頻繁換“馬甲”)
?
準(zhǔn)備工具
服務(wù)器一臺(tái)擁有固定IP及穩(wěn)定的網(wǎng)絡(luò)環(huán)境,操作系統(tǒng)Debian、CentOS都可以。不推薦使用Windows Serve
Nginx/Apache:推薦使用Nginx環(huán)境
PHP:PHP版本推薦7以上(最新皮膚站需要PHP8)
Minecraft服務(wù)器端:如果沒有搭建MC服務(wù)器可在小編主業(yè)搜我的世界查詢搭建教程
?
服務(wù)器選擇:根據(jù)自己個(gè)人的使用途徑去選擇適合自己的服務(wù)器,個(gè)人玩家云機(jī)器 4H8G。對(duì)游戲整體的畫質(zhì)以及操作流暢度有要求對(duì)外開放的建議I9系列物理服務(wù)器(獨(dú)享資源)
服務(wù)器系統(tǒng)選擇:Debian/Ubuntu
(因windows暫用資源會(huì)大些對(duì)服務(wù)器整體的性能不能發(fā)揮到極致)

重置服務(wù)器
方法一:寶塔搭建【推薦小白】:可視化部署LEMP環(huán)境,并可視化部署皮膚站和外置登錄操作。
如果不會(huì)操作寶塔的百度一下,寶塔搭建Ngiinx、PHP和MariaDB/MySQL很簡(jiǎn)單一鍵安裝部署可視化搭建:

BlessingSkin需要啟用一些PHP函數(shù),但是寶塔面板默認(rèn)是禁用的,需要在寶塔面板內(nèi)刪除選項(xiàng):

需要啟用的函數(shù):symlink、readlink、putenv、Realpath?
安裝擴(kuò)展:fileinfo
?

搭建BlessingSkin
現(xiàn)在正式開始搭建,在寶塔的網(wǎng)站選項(xiàng),新建一個(gè)網(wǎng)站:

域名:有域名解析到服務(wù)器填入你自己的域名即可;沒有的話就填I(lǐng)P。
PHP版本:選擇PHP7.4、8.x(6.0以上版本Blessing需要使用PHP8.x)
之后,進(jìn)入網(wǎng)站根目錄,下載并解壓最新版本的BlessingSkin?上傳到網(wǎng)站根目錄

到網(wǎng)站設(shè)置內(nèi):追加:/public
添加偽靜態(tài):
location / {
??????try_files $uri $uri/ /index.php?$query_string;
????}
?

上傳到網(wǎng)站根目錄之后,就可以訪問網(wǎng)站了:

創(chuàng)建數(shù)據(jù)庫(kù):
剛剛有安裝MySQL,這里添加一個(gè)MySQL數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名稱已經(jīng)密碼隨自己設(shè)置,大家在設(shè)置的時(shí)候記得自己備注記下來

?
方法二編譯安裝【推薦大神】:編譯安裝LEMP環(huán)境,并命令后操作部署皮膚站和外置登錄
Nginx源碼編譯安裝復(fù)雜一些,首先下載Nginx1.20.1的源碼下載,下載到Nginx的/usr/local/src內(nèi),并解壓進(jìn)入:依次輸入以下命令
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?
?

?
?
編譯環(huán)境:按需求需要SSL、gzip、正則庫(kù)等依賴
開始安裝一下依賴:(根據(jù)自己的服務(wù)器系統(tǒng)去選擇以下命令輸入)
sudo apt-get install build-essential(# 安裝GCC)
sudo apt-get install libpcre3 libpcre3-dev(# 安裝正則庫(kù))
sudo apt-get install zlib1g-dev(# 安裝gzip lib)
sudo apt-get install openssl libssl-dev?(# 支持OpenSSL)
示例的操作教程是安裝的:sudo apt-get install openssl libssl-dev
?

?
?
預(yù)編譯:首先,我們想要把Nginx以www:www用戶運(yùn)行,所以我這里創(chuàng)建一個(gè)www用戶,附屬于www用戶組:(依次輸入以下命令)
sudo useradd www?(創(chuàng)建一個(gè)www用戶)
sudo groupadd www(創(chuàng)建一個(gè)www用戶組)
sudo usermod -a -G www www(?www用戶歸屬于www用戶組)
之后,開始預(yù)編譯:復(fù)制下方代碼回車
/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

預(yù)編譯完成,如果你并沒有通過,記得重新配置依賴。
?
開始編譯和安裝:輸入以下命令
make -j32 (根據(jù)服務(wù)器核心數(shù)填寫J后面數(shù)值,例服務(wù)器是32核,所以-j32)
make install?(編譯完成,進(jìn)行安裝)
?

?
注冊(cè)服務(wù):如果你是按照我的操作步驟進(jìn)行編譯操作的
那么需要?jiǎng)?chuàng)建一個(gè)日志目錄:輸入以下命令
sudo mkdir /var/cache/nginx?(# 創(chuàng)建日志目錄)
為方便啟動(dòng),注冊(cè)服務(wù)為:輸入以下命令
vim /usr/lib/systemd/system/nginx.service
添加內(nèi)容:輸入以下命令
[Unit]
Description=nginx
After=network.target
??
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
最后啟動(dòng)即可:依次輸入以下命令
systemctl daemon-reload
systemctl start nginx.service
lsof -i:80
?

PHP安裝編譯:
PHP會(huì)比較麻煩,主要是依賴問題,根據(jù)Blessing Skin安裝指南,我們需要PHP支持:
OpenSSL、PDO、Mbstring、Tokenizer、GD、XML、Ctype、JSON、fileinfo、zip
主要是GD模塊,需要很多額外參數(shù),尤其是freetype參數(shù),所以這里編譯需要注意。
下載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操作系統(tǒng)
需要支援Nginx和MariaDB/MySQL,同時(shí)支持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內(nèi),如:
# ?Freetype
export PKG_CONFIG_PATH=/usr/local/freetype/lib/pkgconfig/
CentOS系統(tǒng):
首先是編譯安裝oniguruma,并配置到pkg內(nèi),如:
# Freetype
export PKG_CONFIG_PATH=/usr/local/freetype/lib/pkgconfig/
之后用軟件包管理器安裝:輸入以下命令
sudo yum install libxml2 libxml2-devel?(# XML 庫(kù))
sudo yum install pcre pcre-devel?(# 正則庫(kù))
sudo yum install sqlite3-devel?(# SQL 庫(kù))
sudo yum install libcurl-devel libpng-devel libjpeg-devel?(#lib)
sudo yum install freetype-devel?(# GD 依賴)
PHP預(yù)編譯:輸入以下命令
./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ù)服務(wù)器核心數(shù)填寫J后面數(shù)值,例服務(wù)器是32核,所以-j32)
make install?(編譯完成,進(jìn)行安裝)
?

?
注冊(cè)服務(wù)
根據(jù)教程步驟操作的小伙伴需要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 ?
注冊(cè)服務(wù)為:
sudo vim /usr/lib/systemd/system/php-fpm.service
添加內(nèi)容:
[Unit]
Description=php-fpm
After=network.target
??
[Service]
Type=forking
ExecStart=/usr/local/php7/sbin/php-fpm
PrivateTmp=true
??
[Install]
WantedBy=multi-user.target
最后啟動(dòng)即可:輸入一下代碼
systemctl daemon-reload
systemctl start php-fpm. service
lsof -i: 9000

?
搭建下載BlessingSkin
首先,創(chuàng)建一個(gè)目錄,作為網(wǎng)站目錄:
mkdir /www/BlessingSkin -pv
cd /www/BlessingSkin
之后,下載BlessingSkin的發(fā)行版本,選擇安裝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

安裝官網(wǎng)要求需要重命名和初始化:輸入以下代碼
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. 提權(quán)&重載配置
剛剛都是用root用戶直接修改文件,現(xiàn)在把網(wǎng)站目錄權(quán)限移交給www:
chown www:www /www -R
重載配置:systemctl reload nginx
瀏覽器訪問網(wǎng)站,即可看到效果:

到這里我們就已經(jīng)搭建好BlessingSkin,接下來就是初始化了,點(diǎn)擊下一步,進(jìn)入初始化參數(shù)界面:

輸入完數(shù)據(jù)庫(kù),讓你設(shè)置管理員?按步驟操作
進(jìn)行訪問即可使用皮膚站了
總結(jié):編譯安裝大神適用的方式其實(shí)以上步驟操作就是自己安裝編譯Nginx和PHP在這個(gè)過程中全部部署好在服務(wù)器后下載BlessingSkin搭建一下即可。個(gè)人建議是用寶塔會(huì)方便快捷很多,喜歡大神操作的對(duì)于Nginx和php可自行深入研究
?
外置登錄:使用外置登錄,服務(wù)器的online-mode記得設(shè)置為true
接下來,使用Yggdrasil API來外置登錄皮膚站上操作
首先需要配置搭建好的皮膚站(其實(shí),說是皮膚站,倒像是個(gè)百寶箱),之后選擇管理面板:

管理面板
進(jìn)入管理面板后,選擇插件市場(chǎng)有很多插件大家自行安裝
?

安裝好插件后進(jìn)入插件管理,勾選插件:

會(huì)出現(xiàn)小齒輪點(diǎn)擊就可以進(jìn)入這個(gè)插件的管理面板:

記住API Root中的Yggdrasil API地址,這個(gè)就是外置登錄的驗(yàn)證地址:

外置登錄地址服務(wù)器上操作
其次需要設(shè)置Java Minecraft服務(wù)器的啟動(dòng)命令,先下載最新版本的authlib-injector.jar
下載地址:authlib-injector:xxxxx://authlib-injector.yushi.moe/

authlib-injector下載
之后回到Minecraft的啟動(dòng)界面,如果你之前的Minecraft服務(wù)器啟動(dòng)命令是:java -jar -Xms1024M -Xmx5120M LoliServer-1.16.5-89-server.jar
那么,加上authlib-injector驗(yàn)證就是:
java -jar -Xms1024M -Xmx5120M -javaagent:authlib-injector-1.1.39.jar=xxxx://URL LoliServer-1.16.5-89-server.jar?
服務(wù)器也是可以正常啟動(dòng)的:

客戶端上操作
最后到客戶單上設(shè)置,以HCML為例,打開HMCL后,在登錄里選擇外置登錄:

?
最后應(yīng)有的步驟流程:
1、驗(yàn)證服務(wù)器:我們的Yggdrasil API地址
2、用戶名:我們自己皮膚站上注冊(cè)的用戶
3、密碼:xxxxxxxxxx
這樣,就可以看見自己的角色了(皮膚站上,事先要?jiǎng)?chuàng)建一個(gè)角色 ):
?

到這里我們今天的分享就結(jié)束啦希望對(duì)有需要的小伙伴有幫助
我是馳網(wǎng)艾西 擁有一臺(tái)服務(wù)器可以做很多有趣的事情!
?