opened image

Установка панели Pterodactyl на CentOS 7

 

Установка Pterodactyl в CentOS 7

Для установки панели управления игровыми серверами Pterodactyl мы можем воспользоваться двумя методами:

  1. Ручная установка.
  2. Автоматическая установка панели с редактированием двух параметров.

Сначала рассмотрим ручную установку панели. Если Вам нужно быстро установить панель, то можете пролистать в конец статьи, там будет ссылка на скрипт установки панели.

Теперь по пунктам рассмотрим, что нужно установить и что нужно сделать, чтобы установить такую ​​панель управления. В большинстве команд будет использоваться ключ -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 ошибку как при ручной установке, так и при установке из скрипта, это нормально для этой панели, всё зависит от образа системы который используют хостинги.