Skip to content

安装和设置

本指南将引导你完成安装和配置 PHP Minecraft Server Info API 系统。你将学习如何准备环境、安装依赖、为你的 Minecraft 服务器基础设施配置应用程序,以及验证设置。按照本指南操作,你应该能拥有一个功能齐全的 API 服务器,能够提供 Mod 信息、服务器状态查询和文件下载服务。

先决条件和系统要求

在开始安装之前,请确保你的系统满足以下要求。该项目已在 Debian 12、Debian 13 和 Manjaro Linux 发行版上使用 PHP 8.2 或 PHP 8.4 进行了测试。

PHP Versions

操作系统支持

发行版测试的 PHP 版本状态
Manjaro Linux8.4.7✅ 已验证
Debian 12 (bookworm)8.2.28✅ 已验证
Debian 13 (trixie)8.4.11✅ 已验证

必需的 PHP 扩展

应用程序正常运行必须启用两个关键的 PHP 扩展。系统需要 php-zip 来解析 Minecraft Mod JAR 文件(即 ZIP 压缩包),以及 php-gd 来生成服务器横幅和处理图像。

来源: README.md

PHP 配置要求

应用程序处理可能较大的 Mod 压缩包,需要调整 PHP 设置以获得最佳性能。你需要修改通常位于 /etc/php/php.ini/etc/php/8.4/fpm/php.ini 的 PHP 配置文件。

配置推荐值用途
extension=gd取消注释启用 GD 图像库以生成横幅
extension=zip取消注释启用 ZIP 压缩包处理以解析 Mod
max_execution_time90允许足够的时间来处理大量的 Mod 集合
memory_limit2048M为 ZIP 操作提供充足的内存

修改这些设置后,重新加载你的 PHP-FPM 服务以应用更改:

BASH

sudo systemctl reload php8.4-fpm.service

来源: README.md, composer.json

安装过程

安装过程遵循基于 Composer 的标准工作流。应用程序使用 PSR-4 自动加载机制,在 McModUtilsApp 命名空间下组织其代码结构。

步骤 1:克隆仓库

首先将仓库克隆到你想要的位置:

BASH

bash git clone <repository-url> cd php-minecraft-server-info

来源: README.md

步骤 2:安装依赖

使用 Composer 安装所有必需的 PHP 包。该项目依赖于几个关键库,包括用于路由的 Slim 框架、用于服务器通信的 xpaw's PHP Minecraft Query 库,以及用于视觉元素的 Minecraft Banner Generator。

BASH

bash composer install composer dump-autoload

来源: composer.json, README.md

步骤 3:配置设置

通过复制默认模板来创建你的本地配置文件:

BASH

cp config.default.php config.php vim config.php

引导系统会将你的本地配置与默认配置合并,允许你覆盖特定设置而无需修改基础模板。此配置加载发生在应用程序初始化期间,配置数组存储在全局作用域中以便应用程序全局访问。

来源: README.md, bootstrap.php

应用程序架构概述

该应用程序遵循模块化架构,具有清晰的关注点分离。理解此结构将有助于你进行配置和故障排除。

组件职责

组件位置职责
入口点public/index.php应用程序引导、路由设置、中间件配置
引导程序bootstrap.php自动加载、配置合并、路径常量
Mod 解析器src/McModUtils/Mod.php解析单个 Mod JAR 文件并提取元数据
服务器监控器src/McModUtils/Server.php查询 Minecraft 服务器状态和玩家信息
Mod 管理器src/McModUtils/Mods.php管理 Mod 集合,支持过滤和分类
文件夹处理器src/McModUtils/Folder.php扫描目录并管理文件系统操作
ZIP 处理器src/McModUtils/Zip.php处理 JAR 文件的 ZIP 压缩包操作
响应格式化器src/App/ResponseFormatter.php标准化不同内容类型的 API 响应
错误处理器src/App/AppErrorHandler.php集中式错误处理和调试输出

来源: composer.json, public/index.php

配置指南

配置系统设计灵活,支持单服务器和多服务器部署。你的配置文件将与默认配置合并,允许你仅指定需要覆盖的设置。

核心应用程序设置

Base URL 设置定义了 API 实例的根 URL。这对于生成正确的下载链接和引用尤为重要:

PHP

'base_url' => 'http://localhost:8000',

Debug 标志控制是否显示详细的错误信息。在生产环境中,应始终将其设置为 false

PHP

'debug' => false,

来源: config.default.php, config.default.php

Minecraft 路径配置

应用程序需要 Minecraft 服务器安装的基础路径。所有其他路径都由此基础路径衍生而来:

配置描述示例
mods_path主要 Mod 目录路径/opt/minecraft/mc-server/mods
serverside_prefixs用于标识仅服务器 Mod 的前缀数组['serveronly_', 'server_']

这些前缀允许系统自动区分客户端、服务端和通用 Mod。

来源: config.default.php, config.default.php

Mod 类别配置

系统支持三种类型的 Mod 类别,每种类别在过滤和服务方面具有不同的行为:

类别路径下载 URL 路径忽略服务器前缀仅限服务器前缀
通用 (Common)/opt/minecraft/mc-server/mods/files/mods/
客户端 (Client)/opt/minecraft/mc-server/clientmods/files/clientmods/
服务器 (Server)/opt/minecraft/mc-server/mods/files/mods/

common 类别包括除带有仅服务器前缀之外的所有 Mod。client 类别用于特定于客户端的 Mod,而 server 类别专门提供带有仅服务器前缀的 Mod。

来源: config.default.php

其他文件夹配置

除了 Mod 之外,你还可以配置其他文件夹作为静态文件提供服务。这对于配置文件、资源包和自定义脚本非常有用:

文件夹路径URL 路径用途
/opt/minecraft/mc-server/config/files/config/服务器配置
/opt/minecraft/mc-server/defaultconfigs/files/defaultconfigs/默认 Mod 配置
/opt/minecraft/mc-server/kubejs/files/kubejs/KubeJS 脚本
/opt/minecraft/mc-server/modernfix/files/modernfix/ModernFix 配置
/opt/minecraft/mc-server/resourcepacks/files/resourcepacks/资源包
/opt/minecraft/mc-server/tacz/files/tacz/Timeless and Classics Zero 配置
/opt/minecraft/mc-server/tlm_custom_pack/files/tlm_custom_pack/自定义整合包文件

来源: config.default.php

单服务器配置

对于单服务器部署,请配置主服务器入口点。如果你使用 Velocity 作为代理,请在此处指定代理的主机:

PHP

'minecraft_public_hoststring' => 'mcserver.barian.moe', 'minecraft_host' => '127.0.0.1', 'minecraft_port' => 25565, 'minecraft_qport' => null, // 如果启用,设置为查询端口

仅当你在 server.properties 文件中配置了 enable-query=truequery.port 时,才应设置 minecraft_qport

来源: config.default.php

多服务器配置

系统支持复杂设置的多服务器配置。每个服务器都需要唯一的标识符和连接详细信息:

PHP

'minecraft_servers' => [ 'youer1' => [ 'name' => 'youer1', 'public_hoststring' => 'mcserver.barian.moe /server youer1', 'host' => '127.0.0.1', 'port' => 24565, 'qport' => 24565, ], 'youer2' => [ 'name' => 'youer2', 'public_hoststring' => 'mcserver.barian.moe /server youer2', 'host' => '127.0.0.1', 'port' => 23565, 'qport' => null, ], ],

参数用途是否必需
name前端 UI 显示的名称
public_hoststring向用户显示的连接字符串
host服务器 IP 地址或主机名
port服务器 TCP 端口
qport查询端口(可选)

来源: config.default.php

开发服务器设置

出于开发和测试目的,你可以启动内置的 PHP 开发服务器。不建议在生产环境中使用此方式。

BASH

bash php -S 127.0.0.1:8000 -t public

应用程序将在 http://localhost:8000 上可访问。入口点自动路由请求,加载相应的路由文件,并配置用于错误处理和尾部斜杠规范化的中间件。

开发服务器根据你的配置自动包含基于调试模式的错误中间件。当 'debug' => true 时,系统使用自定义的 AppErrorHandler,提供详细的错误信息。在生产环境中,请确保禁用调试模式以防止信息泄露。

来源: README.md, public/index.php

验证

服务器运行后,你可以通过访问根端点来验证安装:

BASH

bash curl http://localhost:8000/

这应该返回应用程序的索引页面。对于 API 测试,你可以根据配置访问不同的端点:

  • /mods - 列出所有 Mod
  • /server - 返回服务器状态
  • /files/mods/ - 直接文件访问(如果已配置)

来源: public/index.php

后续步骤

完成安装和基本配置后,你可能想要探索以下内容:

如果在设置过程中遇到问题,调试模式会提供详细的错误信息以帮助解决问题。如果遇到 ZIP 相关错误或超时问题,请检查系统要求和 PHP 配置部分。