Установка Pterodactyl на Debian 10, часть 1

Этап 1

1. Установите PHP 8.
2. Установите Composer:
Composer — это менеджер зависимостей для PHP, который позволяет нам поставлять все, что вам понадобится для работы с панелью. Перед продолжением этого процесса вам понадобится установленный Composer.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
3. Операции с файлами:
Первый шаг в этом процессе — создать папку, в которой будет располагаться панель, а затем переместиться в эту вновь созданную папку. Ниже приведен пример того, как выполнить эту операцию.
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
После того, как вы создали новый каталог для Panel и переместились в него, вам нужно будет загрузить файлы Panel. Это так же просто, как использовать curl для загрузки предварительно упакованного контента. После загрузки вам нужно будет распаковать архив и затем установить правильные разрешения для директорий storage/ и bootstrap/cache/. Эти каталоги позволяют нам хранить файлы, а также поддерживать быстрый кеш, чтобы сократить время загрузки.
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/
Теперь, когда все файлы загружены, нам нужно настроить некоторые основные аспекты панели.

4. Конфигурация базы

Прежде чем продолжить, вам потребуется настройка базы данных и пользователь с соответствующими разрешениями, созданными для этой базы данных.
Первым шагом в этом процессе является вход в командную строку MySQL, где мы будем выполнять некоторые инструкции для настройки. Для этого просто выполните приведенную ниже команду и укажите пароль учетной записи Root MySQL, который вы установили при установке MySQL. Если вы не помните, что делали это, скорее всего, вы можете просто нажать Enter, поскольку пароль не установлен.
mysql -u root -p
В целях безопасности и из-за изменений в MySQL 5.7 вам необходимо создать нового пользователя для панели. Для этого мы сначала хотим указать MySQL использовать базу данных mysql, в которой хранится такая информация.
Затем мы создадим пользователя с именем pterodactyl и разрешим вход в систему с localhost, что предотвратит любые внешние подключения к базе данных. Вы также можете использовать % в качестве подстановочного знака или ввести числовой IP-адрес. Мы также установим пароль учетной записи somePassword. Смените somePassword на свой пароль.
USE mysql;
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'somePassword';
Далее нам нужно создать базу данных для панели. В этом уроке мы будем называть базу данных panel, но вы можете заменить, ее каким-то именем, которое вы хотите.
CREATE DATABASE panel;
Наконец, нам нужно сообщить MySQL, что наш пользователь-птеродактиль должен иметь доступ к базе данных панели. Для этого просто запустите команду ниже. Если вы планируете также использовать этот экземпляр MySQL в качестве хоста базы данных на Panel, вы захотите включить опцию WITH GRANT OPTION (что мы и делаем здесь). Если вы не будете использовать этого пользователя как часть настройки хоста, вы можете удалить его.
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Если ваша база данных находится на другом хосте, чем тот, на котором установлена ваша панель или демон, убедитесь, что вы используете IP-адрес машины, на которой работает Panel. Если вы используете 127.0.0.1 и попытаетесь подключиться извне, вы получите сообщение об ошибке в соединении.
USE mysql;
# username - логин пользователя; password - ваш пароль
CREATE USER 'pterodactyluser'@'127.0.0.1' IDENTIFIED BY 'somepassword';
Приведенная ниже команда даст вашему вновь созданному пользователю возможность создавать дополнительных пользователей, а также создавать и уничтожать базы данных. Как указано выше, убедитесь, что 127.0.0.1 совпадает с IP-адресом, который вы использовали в предыдущей команде.
GRANT ALL PRIVILEGES ON *.* TO 'pterodactyluser'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Скорее всего, вам потребуется разрешить внешний доступ к этому экземпляру MySQL, чтобы серверы могли подключаться к нему. Для этого откройте my.cnf, расположение которого зависит от вашей ОС и способа установки MySQL. Вы можете ввести команду в терминал find / etc -iname my.cnf, чтобы найти его.
Откройте my.cnf, добавьте текст внизу в конец файла и сохраните его:
[mysqld]
bind-address=0.0.0.0
Перезапустите MySQL / MariaDB, чтобы применить эти изменения. Это переопределит конфигурацию MySQL по умолчанию, которая по умолчанию будет принимать запросы только от localhost. Обновление позволит подключаться ко всем интерфейсам и, следовательно, к внешним подключениям. Обязательно разрешите порт MySQL (по умолчанию 3306) в вашем брандмауэре.
Если ваша база данных и Wings находятся на одном компьютере и не требуют внешнего доступа, вы также можете использовать IP-адрес интерфейса docker0, а не 127.0.0.1. Этот IP-адрес можно найти, запустив ip addr | grep docker0, и он, скорее всего, выглядит как 172.x.x.x.

5. Конфигурация панели

Сначала мы скопируем наш файл настроек среды по умолчанию, установим основные зависимости, а затем сгенерируем новый ключ шифрования приложения.
cp .env.example .env
composer install --no-dev --optimize-autoloader
# Выполняйте приведенную ниже команду только в том случае, если вы устанавливаете
# эту панель впервые и у вас нет данных панели Pterodactyl в базе данных.
php artisan key:generate --force
Создайте резервную копию ключа шифрования (APP_KEY в файле .env). Он используется в качестве ключа шифрования для всех данных, которые необходимо надежно хранить (например, ключей API). Храните его в безопасном месте, а не только на сервере. Если вы потеряете его, все зашифрованные данные невозможно будет восстановить, даже если у вас есть резервные копии базы данных.
Базовая среда Pterodactyl легко настраивается с помощью нескольких различных команд интерфейса командной строки, встроенных в приложение. Этот шаг будет охватывать настройку таких вещей, как сеансы, кеширование, учетные данные базы данных и отправка электронной почты.
php artisan p:environment:setup
php artisan p:environment:database
# Чтобы использовать внутреннюю отправку почты PHP (не рекомендуется),
# выберите «mail». Чтобы использовать собственный SMTP-сервер, выберите «smtp».
php artisan p:environment:mail
Теперь нам нужно настроить все базовые данные для Panel в базе данных, которую вы создали ранее. Выполнение приведенной ниже команды может занять некоторое время в зависимости от вашего компьютера. Пожалуйста, НЕ выходите из процесса, пока он не будет завершен! Эта команда настроит таблицы базы данных, а затем добавит все гнезда и яйца, питающие птеродактиля.
php artisan migrate --seed --force
Затем вам нужно будет создать пользователя с правами администратора, чтобы вы могли войти в панель. Для этого выполните команду ниже. В настоящее время пароли должны соответствовать следующим требованиям: 8 символов, смешанный регистр, хотя бы одна цифра.
php artisan p:user:make
Последний шаг в процессе установки — установить правильные разрешения для файлов панели, чтобы веб-сервер мог их правильно использовать.
# При использовании NGINX или Apache (не в CentOS):
chown -R www-dаta:www-data /var/www/pterodactyl/*
# При использовании NGINX в CentOS:
chown -R nginx:nginx /var/www/pterodactyl/*
# Если вы используете Apache на CentOS
chown -R apache:apache /var/www/pterodactyl/*
Pterodactyl использует очереди, чтобы ускорить приложение и обрабатывать отправку электронных писем и другие действия в фоновом режиме. Вам нужно будет настроить обработчика очереди для обработки этих действий.
Первое, что нам нужно сделать, это создать новое задание cron, которое запускается каждую минуту для обработки определенных задач Pterodactyl, таких как очистка сеанса и отправка запланированных задач демонам. Вы захотите открыть свой crontab с помощью sudo crontab -e, а затем вставьте строку ниже.
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
Затем вам нужно создать нового рабочего systemd, чтобы наш процесс очереди работал в фоновом режиме. Эта очередь отвечает за отправку электронных писем и выполнение многих других фоновых задач для Pterodactyl.
Создайте файл pteroq.service в /etc/systemd/system со следующим содержимым.
# Pterodactyl Queue Worker File
# ----------------------------------

[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service

[Service]
# В некоторых системах пользователь и группа могут отличаться.
# Некоторые системы используют apache или nginx в качестве пользователя и группы.
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3

[Install]
WantedBy=multi-user.target
Если вы используете CentOS, вам нужно будет заменить redis-server.service на redis.service в строке After=, чтобы обеспечить запуск redis до того, как заработает обработчик очереди.
Если вы ни для чего не используете redis, вам следует удалить строку After =, иначе вы столкнетесь с ошибками при запуске службы.
Если вы используете Redis для своей системы, вам нужно обязательно включить его запуск при загрузке. Вы можете сделать это, выполнив следующую команду:
sudo systemctl enable --now redis-server
Наконец, включите службу и установите ее для загрузки при запуске машины.
sudo systemctl enable --now pteroq.service
Поделиться:

Нет комментариев