ВОЙТИ
    opened image

     

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