Шаг 3: Команды терминала

На этом этапе вам необходимо подключиться к серверу через SSH и выполнить набор специальных команд. Эти команды подготовят ваш сервер, установят и обновят важные компоненты, которые необходимы для стабильной и быстрой работы вашего обменника.

Как открыть терминал и подключиться к серверу по SSH?chevron-right
triangle-exclamation

Важно:

circle-info

Перед началом: проверьте, что FastPanel PHP 8.4 установлен

В FastPanel должен быть установлен PHP 8.4 и доступен путь: /opt/php84/bin/php

Проверка: /opt/php84/bin/php -v

Если команда не найдена — сначала установите PHP 8.4 в FastPanel.


Этап 0: Проверка и установка sudo (если отсутствует)

Иногда на "чистых" серверах sudo может отсутствовать. Сначала проверяем и при необходимости ставим.

if ! command -v sudo >/dev/null 2>&1; then
  apt update -y
  apt install -y sudo
fi

Этап 1: Обновление системы и установка компонентов

Что будет сделано

  • Обновление системы и пакетов

  • Установка Redis (кэширование и очереди)

  • Установка Supervisor (автозапуск и контроль процессов)

  • Установка инструментов сборки (нужны для EV)

  • Установка базовых утилит (curl, git, openssl и т.п.)

Команды для выполнения:

circle-info

Важно при установке пакетов

Если появится вопрос: Do you want to continue? [Y/n] — ответьте Y и нажмите Enter.

Этап 2: Сделать PHP 8.4 (FastPanel) основным для CLI

В FastPanel PHP 8.4 находится по пути: /opt/php84/bin/php

Сделаем так, чтобы команда php в терминале использовала именно PHP 8.4.

Команды

Этап 3: Установка ionCube Loader 15

  • Loader подключаем первым через файл: /opt/php84/conf.d/00-ioncube.ini

  • Скачивание: IPv4 + fallback ZIP, если tar.gz не скачался.

Команды

Этап 4: Установка расширения EV

  • Мы ставим EV не в системный PHP, а в FastPanel PHP 8.4 (/opt/php84).

  • Для EV обязательно нужен модуль sockets. Если sockets не загружен, EV не запустится (ошибка socket_ce).

Команды

circle-info

Важно при установке EV

Если появится вопрос: Enable internal debugging in ev [no]: — просто нажмите Enter.


Этап 3: Настройка лимитов открытых файлов (limits.conf)

Данная настройка необходима, чтобы сервер стабильно обрабатывал большое количество одновременных подключений, запросов и корректно функционировал под высокими нагрузками.

  1. Откройте терминал сервера и выполните следующую команду для открытия конфигурационного файла:

  1. В открывшемся редакторе файла перейдите в самый низ и добавьте следующие строки (замените слово имя_пользователя на фактическое имя вашего пользователя сервера):

Здесь:

  • www-data — стандартный пользователь веб-сервера.

  • soft и hard — типы лимитов.

    • soft — рекомендуемый предел (может временно превышаться).

    • hard — жёсткий предел (нельзя превышать).

  • nofile — количество одновременно открытых файлов.

Значение 10000 оптимально для большинства веб-приложений и серверов.

circle-info

Как сохранить изменения

На Mac и Linux (редактор nano):

  • Нажмите комбинацию клавиш Control + O для сохранения файла.

  • Затем подтвердите сохранение, нажав Enter.

  • Для выхода из редактора нажмите Control + X.

На Windows (редактор nano в WSL, Git Bash и аналогичных):

  • Нажмите комбинацию клавиш Ctrl + O для сохранения файла.

  • Затем нажмите Enter для подтверждения.

  • Закройте редактор, нажав Ctrl + X.


Этап 4: Подробная настройка веб-сервера Nginx

На этом этапе вы настроите веб-сервер Nginx таким образом, чтобы он мог без перебоев работать с большим количеством одновременно подключенных пользователей и эффективно справлялся с повышенной нагрузкой.

Эта настройка особенно важна, так как по умолчанию сервер имеет достаточно низкие ограничения на количество одновременных подключений, что может привести к ошибкам и проблемам в работе обменника при увеличении числа посетителей и запросов.

1. Откройте конфигурационный файл Nginx

Сначала подключитесь к серверу через SSH.

Затем в терминале введите следующую команду:

  • sudo — выполнение команды с правами администратора.

  • nano — текстовый редактор в терминале.

  • /etc/nginx/nginx.conf — это основной файл настроек веб-сервера Nginx.

После выполнения этой команды откроется конфигурация веб-сервера.

2. Внесите важные изменения в конфигурацию

В открывшемся файле найдите строчку:

Эта строчка показывает, где хранится файл, в котором записан ID процесса Nginx. Вам нужно вставить настройки сразу после этой строки, чтобы изменения были максимально эффективны и правильно применялись сервером.

Удалите стандартный блок настроек, который выглядит так:

circle-info

Стандартное значение ограничивает сервер 1024 одновременными подключениями. Для современных сайтов это значение обычно недостаточно, особенно под высокой нагрузкой.

Вместо удалённого блока добавьте новый блок, указанный ниже:

Подробное описание новых параметров:

  • worker_rlimit_nofile 10000

    Это ограничение количества одновременно открытых файлов, доступных для каждого рабочего процесса Nginx.

    Веб-серверу необходимо открывать файлы для каждого подключения (каждого запроса или каждого пользователя). Чем больше это число, тем больше одновременных подключений сервер сможет корректно обработать. Значение 10000 является оптимальным в большинстве случаев.

  • worker_connections 10000

    Указывает максимальное количество одновременных подключений, которое сможет обрабатывать каждый отдельный рабочий процесс Nginx. Большое значение необходимо, чтобы сервер не отказывал в подключениях при высокой нагрузке и потоке пользователей.

  • multi_accept on

    Настройка, позволяющая серверу одновременно принимать несколько входящих подключений за одно событие. По умолчанию сервер принимает одно подключение за раз, и это может создавать очереди, когда одновременно пытается подключиться много пользователей. Включение этой опции существенно ускоряет обработку входящих подключений.

После того, как вы добавили указанные строки, сделайте следующее:

circle-info

Как сохранить изменения

На Mac и Linux (редактор nano):

  • Нажмите комбинацию клавиш Control + O для сохранения файла.

  • Затем подтвердите сохранение, нажав Enter.

  • Для выхода из редактора нажмите Control + X.

На Windows (редактор nano в WSL, Git Bash и аналогичных):

  • Нажмите комбинацию клавиш Ctrl + O для сохранения файла.

  • Затем нажмите Enter для подтверждения.

  • Закройте редактор, нажав Ctrl + X.

3. Перезапустите веб-сервер Nginx

Теперь изменения нужно применить, перезапустив сервер Nginx.

Для этого выполните команду:

Эта команда перезапустит веб-сервер, и все сделанные вами изменения вступят в силу сразу после этого.


Этап 5: Настройка стабильной работы проекта с Supervisor и PM2

Для обеспечения стабильной работы вашего обменника даже при сбоях или перезагрузке сервера необходимо настроить специальные инструменты автоматического управления приложениями:

  • Supervisor — это инструмент, который следит за фоновыми процессами вашего Laravel-приложения (например, очереди задач, отправка уведомлений, мониторинг производительности). Supervisor автоматически перезапускает процессы, если они вдруг остановились, гарантируя бесперебойную работу вашего сайта.

  • PM2 — это инструмент, который управляет работой вашего Angular frontend-приложения. PM2 обеспечивает автоматический перезапуск приложения при сбоях, мониторинг использования ресурсов и удобное ведение журналов (логов).

Обязательно выполните инструкции по ссылкам ниже для настройки каждого компонента:

Настройка Supervisorchevron-rightНастройка PM2chevron-right

После того как вы завершите настройку, сервер будет полностью готов к надёжной и стабильной работе вашего обменника.

circle-info

Совет

Обязательно убедитесь, что выполнили инструкции полностью и без ошибок, так как от этого зависит надёжность работы вашего обменника.


Этап 6: Установка корректных прав доступа на файлы проекта

Правильная настройка прав доступа необходима для безопасной работы вашего backend-приложения (Laravel). Корректно выставленные права позволяют вашему пользователю управлять всеми файлами проекта, выполнять команды от своего имени и избегать ошибок прав доступа.

После загрузки файлов на сервер может возникнуть ситуация, когда пользователь сайта (созданный в FastPanel) не имеет прав на редактирование или запуск некоторых файлов или директорий. Данная настройка исправит эту проблему.

Выполните следующую команду в терминале:

Обязательно замените указанные значения на свои:

  • имя_пользователя – имя пользователя, созданное в панели управления (например, пользователь FastPanel).

  • путь_к_проекту – путь к директории вашего сайта на сервере (например, /var/www/ваш_домен или /var/www/app.ваш_домен).

Как найти путь к проекту и имя пользователя в FastPanel?chevron-right

Что делает эта команда:

  • sudo – выполняет команду с правами администратора.

  • chown – изменяет владельца файлов и папок.

  • Параметр -R – применяет изменения ко всем файлам и папкам внутри указанной директории.

После выполнения этой команды, у вас будут правильные права на управление всеми файлами и директориями вашего проекта.


Завершающий этап: запуск команд от имени пользователя проекта

На этом этапе необходимо выполнить несколько команд в терминале, которые завершат подготовку вашего проекта и сделают его полностью рабочим и готовым к использованию.

Выполните эти шаги по порядку и внимательно следуйте инструкции ниже.

Шаг 1: Авторизация под пользователем сайта

Сначала авторизуйтесь под пользователем сайта, чтобы все команды выполнялись от его имени, а не от администратора. Это безопасно и правильно для работы приложения.

Введите в терминал следующую команду:

Замените имя_пользователя на имя, которое вы создавали в панели FastPanel.

Шаг 2: Переход в директорию сайта

Теперь перейдите в каталог (папку) вашего проекта, чтобы команды запускались именно для него.

Для этого используйте команду:

Обязательно замените /var/www/app.ваш_домен на полный путь к вашему проекту.

Шаг 3: Запуск дополнительных команд для настройки проекта

Теперь нужно выполнить три команды Laravel, которые завершат подготовку проекта:

Введите каждую команду последовательно и после каждой нажимайте Enter:

triangle-exclamation

Что делают эти команды:

  • php artisan product:apply-update – устанавливает или обновляет базовые компоненты и выполняет все необходимые миграции для работы обменника.

  • php artisan key:generate – генерирует уникальный ключ приложения, который будет использоваться для шифрования данных. Это важно для безопасности вашего сайта.

  • php artisan reverb:install – настраивает работу сервиса Reverb, который обеспечивает обмен событиями в реальном времени. Это необходимо для работы уведомлений, статусов и других динамических функций на вашем сайте.

Последнее обновление

Это было полезно?