Установка Pterodactyl в CentOS 7
Для установки панели управления игровыми серверами Pterodactyl мы можем воспользоваться двумя методами:
- Ручная установка.
- Автоматическая установка панели с редактированием двух параметров.
Сначала рассмотрим ручную установку панели. Если Вам нужно быстро установить панель, то можете пролистать в конец статьи, там будет ссылка на скрипт установки панели.
Теперь по пунктам рассмотрим, что нужно установить и что нужно сделать, чтобы установить такую панель управления. В большинстве команд будет использоваться ключ -y, чтобы не требовалось подтверждать установку программ.
1. Нужно обновить репозитории системы, чтобы потом не было ошибок с установкой:
yum -y update
2. Установим репозитории remi, они необходимы для установки php:
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
С помощью команды yum repolist мы видим, что оба репозитории подключены.
3. Также установим программу управления репозиториями, которая позволит нам контролировать какие версии php мы будем устанавливать на сервере:
yum -y install yum-utils
4. Теперь мы отключим все старые версии php и включим php 8.1, потому что сейчас панель требует ее:
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php81
На снимке экрана результат команды будет показывать как при отключении, так и при включении репозиториев с помощью yum-config-manager.
5. Сейчас мы будем устанавливать зависимости, необходимые для работы панели. Пропуск одной из них приведет к неработоспособности панели:
yum -y install httpd unzip openssl wget curl php php-sodium php-cli php-common php-gd php-mbstring php-mysqlnd php-pdo php-xml php-zip php-tokenizer php-json php-curl php-openssl php-zlib php-bcmath php-posix php-zip redis
Во-первых, мы установили веб-сервер, который позволит нам получить доступ к самой панели. Также мы установили openssl, который отвечает за создание ключей безопасности, wget и curl, необходимые для загрузки ресурсов из других источников, кроме репозиториев.
6. Теперь нам нужно добавить репозиторий MariaDB, который будет отвечать за базы данных как самой панели управления, так и наших игровых серверов.
Создаем файл /etc/yum.repos.d/mariadb.repo со следующим текстом:
# MariaDB 10.6 CentOS repository list - created 2023-05-27 06:09 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.6/centos/$releasever/$basearch
baseurl = https://mirrors.xtom.de/mariadb/yum/10.6/centos/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirrors.xtom.de/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
7. Снова нужно обновить репозитории, чтобы система могла загрузить MariaDB на сервер:
yum -y update
8. Устанавливаем саму MariaDB:
yum install -y mariadb-server
9. Теперь создадим директорию, в которой будет сама панель, и перейдем в нее. Здесь ключ -p нужен, чтобы оно создало директории, которые находятся внутри пути. Например, может не быть директории www:
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
10. Настраиваем файерволл, чтобы потом был доступ к панели:
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Если при выполнении команды возникает ошибка, возможно у Вас одна (-) вместо двух перед параметрами permanent, reload и add-service.
11. Запускаем MariaDB (mysql) и производим ее сервисом, чтобы при запуске системы она сама запускалась:
systemctl start mariadb
systemctl enable mariadb
12. Создаем пользователя и базу данных:
mysql -u root -e "CREATE DATABASE panel;"
mysql -u root -e "CREATE USER 'pterodactyl'@'localhost' IDENTIFIED BY '121212121212';"
mysql -u root -e "GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'localhost' WITH GRANT OPTION;"
Вывода этих команд не будет, но они выполнились.
13. Здесь нам нужно установить composer, далее большинство работы будет связано именно с ним:
curl -sS https://getcomposer.org/installer | php --install-dir=/usr/local/bin --filename=composer && ln /usr/local/bin/composer /usr/bin/composer
Эта команда загружает установщик composer после чего копирует его в директорию /usr/local/bin, и создает ссылку в директорию /usr/bin, которая отвечает за команды, поэтому когда Вы пишете команду, система ищет файл программы именно там.
14. На этом пункте с помощью pwd проверьте, находитесь ли вы в директории /var/www/pterodactyl, сюда мы будем загружать саму панель с помощью команды:
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
15. Распаковываем ее:
tar -xzvf Panel.tar.gz
16. Выдадим правильные права, чтобы потом не было ошибок при установке:
chmod -R 755 store/* bootstrap/cache
17. Скопируем .env файл, без него панель не установится правильно:
cp .env.example .env
18. Установим composer в локальную директорию. Оно спросит запускать ли команду от пользователя root, соглашаемся:
composer install --no-dev --optimize-autoloader
19. Создадим ключ для composer:
php artisan key:generate --force
20. Начнем подключение панели управления к базе данных и настройку параметров:
php artisan p:environment:setup --author=EMAIL --url=http://DOMAIN --timezone=UTC --cache=file --session=database --queue=database --settings-ui=yes --telemetry=no --no-interaction
Также на снимке экрана видно, какие настройки нужно вводить при работе с интерактивным режимом настройки. (php artisan p:environment:setup)
Во-первых, вместо EMAIL нужно указать любую почту. Для параметра DOMAIN необходимо указывать реальный домен, направленный на сервер, или IP-адрес сервера, или домен, указанный в файле hosts на устройстве. Эти настройки нужны для работы самой панели. Все остальные параметры лучше не изменять для стабильности работы.
php artisan p:environment:database --host=localhost --port=3306 --database=panel --username=pterodactyl --password=PASS --no-interaction
Здесь мы изменяем параметр PASS на пароль от базы данных, созданной ранее.
php artisan migrate --seed --force --no-interaction
Команда для создания пользователя на панели. Если пользователь не должен быть администратором, то в параметре --admin выставляете 0. Пользователей можно также создавать внутри панели.
php artisan p:user:make --email=EMAIL --username=USER1 --name-first=USER2 --name-last=USER3 --password=PASS2 --admin=1 --no-interaction
Здесь в EMAIL указываете email, с помощью которого Вы будете входить в панель управления. Параметр USER1 – это ник пользователя. Параметры USER2 и USER3 – это имя и фамилия, они также отображаются на панели. Параметр PASS2 – это пароль, с помощью которого пользователь будет входить в панель управления. Это все параметры, которые здесь нужно редактировать. Параметр --no-interaction нужен, чтобы не настраивать пользователя через встроенные в Composer инструменты, поскольку в них ничего не изменишь.
Теперь мы на финишной прямой. Все, что нам осталось, это настроить Apache2 (httpd) и настроить сервис панели управления, чтобы его можно было перезапускать при необходимости.
21. Выставляем пользователя для директории панели:
chown -R apache:apache /var/www/pterodactyl/*
Звездочка означает, что команда будет использована для всех файлов внутри данной директории.
22. Запускаем Apache и делаем его сервисом как раньше с MariaDB:
systemctl start httpd
systemctl enable httpd
23. Создаем конфигурацию Apache со следующими параметрами по /etc/httpd/conf.d/pterodactyl.conf:
<VirtualHost *:80>
ServerName DOMAIN
DocumentRoot /var/www/pterodactyl/public
AllowEncodedSlashes On
php_value upload_max_filesize 100M
php_value post_max_size 100M
<Directory "/var/www/pterodactyl/public">
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
Вместо DOMAIN указываете домен, указанный ранее при настройке панели.
24. Настраиваете крон задания, в файл /etc/crontab вставляете следующую ленту:
echo "* * * * * php /var/www/pterodactyl/artisan schedule:run" >> /etc/crontab
25. Теперь создадим сервис самой панели управления путем /etc/systemd/system/pteroq.service со следующим содержанием:
# Pterodactyl Queue Worker File
# ----------------------------------
[Unit]
Description=Pterodactyl Queue Worker
#After=redis.service
[Service]
# On some systems the user and group might be different.
# Some systems use `apache` or `nginx` as the user and group.
User=apache
Group=apache
Restart=always
ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target
После чего нам нужно запустить сервис и перезапустить Apache:
systemctl enable --now pteroq.service
systemctl start pteroq.service
systemctl restart httpd
Готово, панель управления должна быть доступна при переходе по домену или IP.
При переходе Вы можете увидеть такое поле входа.
Внутренний интерфейс панели управления выглядит следующим образом:
Теперь установка с помощью готового скрипта.
Загружаем скрипт:
curl -O https://raw.githubusercontent.com/FartGarfild/Pterodactyl.sh/main/CentOS_7_Install.sh
Перед запуском его нужно отредактировать (vi или nano подойдет):
vi CentOS_7_Install.sh
В переменных нужно указать EMAIL, который будет использоваться в панели управления и DOMAIN, который будет использовать панель для доступа к ней.
После этого с помощью команды устанавливаем панель управления. Установка занимает примерно 15-30 минут.
chmod +x CentOS_7_Install.sh && bash CentOS_7_Install.sh
После чего доступ к панели Вы сможете найти в файле /var/www/pterodactyl/access.txt.
Так устанавливается панель управления Pterodactyl на CentOS 7.
P.S. У Вас может выбить 500 ошибку как при ручной установке, так и при установке из скрипта, это нормально для этой панели, всё зависит от образа системы который используют хостинги.