opened image

Встановлення панелі Pterodactyl на CnetOS 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 -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 помилку як при ручному встановленні, так і при встановлені зі скрипта, це нормально для цієї панелі, все залежить від образу диска який використовують хостинги.