УВІЙТИ
    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 -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.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 storage/* 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 помилку як при ручному встановленні, так і при встановлені зі скрипта, це нормально для цієї панелі, все залежить від образу диска який використовують хостинги.