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