Файл 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-архив выполняется с правами вашего пользователя, и вредоносный код внутри него получит те же права. Проверяйте источник и, по возможности, контрольные суммы, если они опубликованы.
Запуск сервера на 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) и предложит пройти мастер начальной настройки: выбор языка, имени сервера и других базовых параметров.
☑️ Проверка перед первым запуском
Типичные ошибки при запуске 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 исходного кода. Сверяйтесь с этими источниками, а не с советами на сторонних форумах — требования меняются от версии к версии.