PocketMine-MP phar: запуск сервера Minecraft Bedrock

Файл PocketMine-MP.phar — это исполняемый архив PHP, внутри которого упакован весь сервер Minecraft Bedrock Edition, и без корректно установленного интерпретатора PHP с нужными расширениями он не запустится, выдавая ошибки вроде отсутствующих модулей или несовместимости версий. Именно с проверки окружения, а не с самого файла, начинается любая успешная установка сервера.

PocketMine-MP — популярное серверное ядро для Minecraft Bedrock (карманного издания), написанное на PHP. В отличие от классических jar-файлов Java-серверов, здесь весь код упакован в формат phar (PHP Archive) — аналог jar, но для PHP. Понимание того, как устроен этот файл и как его правильно запустить, избавит вас от большинства типовых проблем при поднятии собственного сервера.

Что такое phar и почему PocketMine-MP распространяется в этом формате

Формат phar позволяет упаковать целое PHP-приложение — сотни файлов и классов — в один архив, который PHP-интерпретатор выполняет как единую программу. Для пользователя это удобно: вместо распаковки тысяч файлов исходного кода достаточно скачать один файл и передать его интерпретатору.

Разработчики PocketMine-MP выбрали phar по нескольким причинам:

  • 📦 Портативность — один файл легко переносить между серверами и обновлять простой заменой.
  • 🚀 Скорость развёртывания — не требуется композер, установка зависимостей или компиляция на стороне пользователя.
  • 🔒 Целостность — phar может быть подписан, что затрудняет незаметную модификацию кода ядра.
  • 🧩 Совместимость с плагинами — плагины для PocketMine-MP тоже распространяются в формате phar и подключаются аналогичным образом.

Важно понимать: phar — это не самодостаточная программа, а архив для интерпретатора. Без установленного PHP подходящей версии файл бесполезен, поэтому далее разберём требования к окружению.

Требования: PHP и необходимые расширения

Главная особенность PocketMine-MP — ядро требует не любой PHP, а конкретную версию с определённым набором расширений. Команда проекта выпускает собственные готовые сборки PHP (так называемые prebuilt binaries), которые включают все нужные модули, и официальная документация рекомендует использовать именно их, а не системный PHP из репозиториев.

Причина проста: PocketMine-MP опирается на расширения, которые в стандартной поставке PHP могут отсутствовать или быть собраны иначе. Среди критичных компонентов — поддержка многопоточности и специфические библиотеки для сетевой работы. Попытка запустить phar на «первом попавшемся» PHP почти гарантированно закончится ошибкой о недостающем расширении.

Ориентировочный набор того, что понадобится, выглядит так:

  • 🐘 PHP-пакет от команды PocketMine — готовый бинарник под вашу ОС (Windows или Linux).
  • 📄 Сам файл PocketMine-MP.phar стабильного релиза.
  • 💾 Достаточно оперативной памяти — для небольшого сервера хватит скромных объёмов, но запас не помешает.
  • 🌐 Открытый UDP-порт, если сервер должен быть доступен извне (по умолчанию Bedrock-серверы используют UDP).

Где скачать PocketMine-MP.phar

Единственный надёжный источник — официальные каналы проекта: репозиторий на GitHub и официальный сайт PocketMine-MP. Сторонние сайты, предлагающие «готовые сборки сервера с плагинами», нередко вкладывают в phar модифицированный код, и проверить его безопасность без распаковки архива затруднительно.

В разделе релизов репозитория публикуются стабильные версии. Рядом с phar-файлом обычно доступны и ссылки на соответствующие сборки PHP для Windows и Linux. Скачивайте оба компонента из одного релиза — это исключит несовместимость версий.

⚠️ Внимание: не запускайте phar-файлы, полученные из неофициальных источников, на сервере с доступом к важным данным. PHP-архив выполняется с правами вашего пользователя, и вредоносный код внутри него получит те же права. Проверяйте источник и, по возможности, контрольные суммы, если они опубликованы.
📊 На какой платформе вы запускаете сервер PocketMine-MP?
Windows-ПК
Linux-сервер или VPS
Хостинг с готовой панелью
Только планирую запуск

Запуск сервера на Windows и Linux

Общий принцип одинаков для обеих систем: вызывается бинарник PHP, которому в качестве аргумента передаётся путь к phar-файлу. Различия — в имени исполняемого файла и стартовых скриптах.

На Windows готовый пакет обычно содержит файл start.cmd — достаточно запустить его двойным кликом. Скрипт сам подхватывает вложенный PHP и phar. Если стартового скрипта нет, запуск выполняется вручную из командной строки:

bin\php\php.exe PocketMine-MP.phar

На Linux логика аналогична, но бинарник PHP может потребовать флаг исполнения. Типовая команда выглядит так:

./bin/php7/bin/php PocketMine-MP.phar

Точный путь к бинарнику зависит от структуры скачанного архива — перед запуском загляните внутрь распакованного пакета и найдите исполняемый файл php. При первом старте сервер создаст конфигурационные файлы (server.properties, pocketmine.yml) и предложит пройти мастер начальной настройки: выбор языка, имени сервера и других базовых параметров.

☑️ Проверка перед первым запуском

Выполнено: 0 / 5

Типичные ошибки при запуске phar и их решение

Большинство проблем на старте сводится к несоответствию окружения требованиям ядра. Ниже — частые сценарии и порядок диагностики.

СимптомВероятная причинаЧто проверить
Ошибка о недостающем расширении PHPИспользуется системный PHP без нужных модулейЗаменить на официальную сборку PHP от PocketMine
Сообщение о несовместимой версии PHPВерсия интерпретатора старше или новее требуемойСверить версию PHP с требованиями релиза
«Permission denied» при запуске на LinuxНет флага исполнения у бинарника или скриптаВыполнить chmod +x для нужных файлов
Сервер стартует, но не виден в спискеЗакрыт UDP-порт или неверный адрес в настройкахПроверить firewall и параметр server-port
Вылет при загрузке плагинаПлагин собран под другую версию API ядраСверить совместимость плагина с версией ядра

Если сервер падает сразу после старта, первым делом читайте server.log в папке сервера — PocketMine-MP подробно пишет туда причину остановки, включая имя отсутствующего расширения или проблемного плагина. Гадать по симптомам без лога — путь к лишним переустановкам.

⚠️ Внимание: не меняйте параметры JIT, лимитов памяти PHP и другие низкоуровневые настройки, пока сервер не запущен в конфигурации по умолчанию. Сначала добейтесь стабильного старта, и только потом занимайтесь тюнингом — иначе будет непонятно, какая из правок вызвала проблему.

Сборка phar из исходников

Иногда готовый phar не подходит — например, нужен собственный патч ядра или сборка из ветки разработки. В этом случае phar собирается из исходного кода репозитория.

Общий порядок такой: клонируется репозиторий PocketMine-MP, через Composer устанавливаются зависимости, после чего проект собирается в phar с помощью инструментов, предусмотренных разработчиками (в репозитории есть соответствующие скрипты сборки). Один нюанс, который часто мешает новичкам: в конфигурации PHP должен быть разрешён запись phar-архивов. Проверить и при необходимости изменить это можно параметром phar.readonly в php.ini — для сборки он должен быть выключен.

Зачем вообще собирать phar самостоятельно

Самосборка оправдана, если вы разрабатываете плагин и хотите тестировать его на модифицированном ядре, вносите вклад в сам проект или вам нужна функция из ещё не выпущенной версии. Для обычного сервера с плагинами из каталога достаточно официального релиза — самосборка лишь добавит точек отказа.

Учтите, что dev-сборки могут быть нестабильны и несовместимы с плагинами, рассчитанными на стабильный API. Для «боевого» сервера, где играют реальные пользователи, безопаснее оставаться на официальных релизах.

Обновление и откат версий

Обновление PocketMine-MP сводится к замене phar-файла на новый — миры, настройки и плагины при этом сохраняются, так как хранятся отдельно от ядра. Тем не менее перед заменой файла сделайте резервную копию всей папки сервера: миры, конфиги и плагины. Это займёт минуты, но спасёт часы при неудаче.

Отдельная тема — совместимость плагинов. Каждое крупное обновление ядра может менять API, и плагины, собранные под старую версию, перестанут загружаться. Поэтому порядок безопасного обновления такой: сначала проверьте, что критичные для вас плагины имеют версии под новое ядро, затем обновляйте phar, и только потом заменяйте плагины.

Откат выполняется симметрично: верните прежний phar и старые версии плагинов из резервной копии. Учтите, что миры, сохранённые новой версией ядра, теоретически могут некорректно открыться на старой — ещё один аргумент в пользу бэкапов до обновления, а не после.

Часто задаваемые вопросы

Можно ли запустить PocketMine-MP.phar на обычном PHP из репозитория Linux?

Теоретически — да, если версия и набор расширений совпадут с требованиями ядра. На практике системный PHP почти никогда не собран с нужной конфигурацией, поэтому официальная рекомендация — использовать готовые бинарные сборки PHP от команды проекта.

Чем phar отличается от папки с исходным кодом сервера?

По функциональности — ничем: внутри phar лежит тот же код. Разница в удобстве распространения и запуска: один файл проще скачать, обновить и перенести, чем дерево из сотен файлов с зависимостями.

Куда класть плагины для PocketMine-MP?

Плагины в формате phar помещаются в папку plugins в каталоге сервера. При следующем запуске ядро обнаружит их автоматически, если они совместимы с версией API вашего ядра.

Сервер запустился, но друзья не могут подключиться. Что проверить?

Убедитесь, что UDP-порт сервера открыт в firewall и проброшен на роутере, если сервер домашний. Также проверьте, что клиенты используют версию Minecraft Bedrock, совместимую с версией протокола вашего ядра.

Как узнать, какая версия PHP нужна для моего релиза PocketMine-MP?

Требуемая версия указывается в описании релиза на странице загрузки и в файле composer.json исходного кода. Сверяйтесь с этими источниками, а не с советами на сторонних форумах — требования меняются от версии к версии.