iEXExchanger 10.x
Официальный сайт
  • 10.x
  • История версий
  • Введение
  • Журнал изменений
  • Общая информация
    • Полезные советы
      • Технические требования к серверу
        • Сервер на FastVPS
        • Сервер на Timeweb
      • Домен для обменника
      • От мониторингов
        • Как попасть в BestChange
        • Рекомендации к обменникам
      • Защита от DDoS-атак
    • Центр безопасности
      • Настройка Google Authenticator
      • Изменение URL панели управления
      • Доступ к панели по IP-адресу
      • Управление группами пользователей
      • CSP Безопасность
      • Защита от CSRF-атак
      • Код безопасности для автовыплат
      • Ограничение доступа по IP в Cloudflare
      • Настройка защиты Fail2ban
      • Советы по безопасности от BestChange
      • Конфигурация брандмауэра UFW
      • Блокировка нежелательных email-адресов
  • Обучение
    • Изучение продукта
      • Введение
      • Начало работы
      • Главы
        • 1. Основные настройки
        • 2. Настройки интерфейса
        • 3. Коды валют и платежные системы
        • 4. Создание валют
        • 5. Настройка курсов
        • 6. Создание направлений
        • 7. Настройка заявок
    • Видеоматериалы
      • Быстрый запуск с нуля
      • Начало работы
        • Настройка планировщика задач
      • Главы
  • УСТАНОВКА И НАСТРОЙКА
    • Установка системы
      • Установка ПО
        • Шаг 1: Подготовка
        • Шаг 2: Настройка FastPanel
        • Шаг 3: Команды терминала
        • Шаг 4: Запуск процессов
          • Настройка Supervisor
          • Настройка PM2
        • Шаг 5: Финальные настройки
      • Интеграция с Cloudflare
        • Подключение сайта к Cloudflare
        • Включение HTTPS
        • Режим защиты (Under Attack Mode)
        • Настройка DNS
        • Установка SSL-сертификата
        • Белый и чёрный список IP
        • Очистка кэша Cloudflare
      • Настройка конфигурации
    • Обновление продукта
      • Обновление с 10.0.x до 10.0.2
      • Переход на версию 10.0.0
      • Обновления внутри 9.x
        • Инструкция с 9.2.1 до 9.2.2
        • Инструкция с 9.2 до 9.2.1
        • Инструкция с 9.1 до 9.2
      • Инструкция по загрузке архивов и лицензии
    • Файлы лицензии
    • CRON: настройка задач
  • Заявки
    • Работа с заявками
      • Статусы заявок
      • Этапы для Заявок
      • Лимиты для операторов
      • Причины для заявок
      • Настройка Live заявок
    • Верификация
      • Верификация карт
        • Категория верификаций
        • Инструкция верификаций
      • Верификация личности (KYC)
  • Меню
    • Основное
      • Добавить код валюты
      • Добавить платежную систему
      • Валюты
        • Добавить новую валюту
        • Сети для валют
        • Фильтры для валют
        • Метки для валют
        • Быстрые команды
      • Направление
        • Добавить новое направление
        • Режимы направлений
        • Сортировка направлений
        • Групповая комиссия
        • Сумма обмена
        • Уведомления
      • Резервы
        • Стандартный резерв
        • Резерв из сервера
        • Резерв из файла
      • Платежные реквизиты
        • Добавить реквизит
        • Информационные поля
        • Дополнительные поля
        • Как настроить систему выдачи реквизитов по запросу?
      • Уведомления
        • Настройка уведомлений в направлениях
        • Настройка уведомлений в валютах
      • Дополнительные поля
        • Доп. поля для валют
        • Доп. поля для направлений
      • Шаблоны
        • Шаблоны для валют
        • Шаблоны для направлений
    • Внешний вид
      • Кастомизация главной страницы
      • Кастомизация окна оплаты заявки
      • Настройка текста
      • Виды отображения направлений обмена на главной странице
      • Уведомление на сайте
      • Цветовая палитра и стили оформления сайта
      • Вопросы и Ответы
        • Как настроить модальное окном "Подтверждение обмена"?
        • Как изменить шрифт на сайте?
        • Как вывести QR-Код при оплате заявки?
        • Как вывести галочку "Не запоминать введенные данные"?
        • Как настроить иконку и логотип?
        • Как установить свой фон на сайте?
        • Как настроить смену стилей?
    • Парсер курсов
      • Типы курсов
        • Курсы из источников
        • BestChange API парсер
          • Как получить ключ BestChange API?
          • Где находятся все созданные пары из BestChange API?
          • Настройка BestChange API парсера
          • Теги и формулы для расчёта курсов BestChange
        • Курсы из файла
        • Курсы по формуле
          • Теги и формулы для расчёта курсов валют
          • Стандартные формулы для расчёта курсов
        • Курсы конкурентов
      • CoinMarketCap API Keys
      • Дата последнего обновления курсов
      • Ускоренное обновление курсов
    • Партнерам и скидки
      • Партнерам
        • Баннеры партнеров
        • Другие разделы
        • Настройка партнерских процентов
        • Настройка партнерской программы для направлений обмена
        • Настройки партнерской программы
        • Настройка валюты для партнёрской программы
        • Почему не начисляются бонусы партнерам?
        • Почему в реферальной программе, неправильно отображается символ валюты?
      • Скидки
    • Пользователи
      • Группы прав пользователей
      • Фильтр по: IP или E-Mail
      • Лог авторизаций
  • Вопросы и ответы
    • Заявки
      • Где можно смотреть прибыль от заявок?
      • Почему создаются заявки, когда нет резерва?
      • Почему заявка автоматически отклоняется через минуту?
      • Как прикрепить файл к заявке, чтобы клиент увидел?
      • Как добавить комментарий к заявке пользователя?
      • Как отключить поле E-mail при для новых клиентов?
      • Как клиенты могут привязать чек к заявке?
      • Почему клиенты при открытии заявки получают сообщение "Нет доступ к заявке"?
      • Могут ли главные менеджеры выполнять любые заявки?
      • Почему клиенты не видят заявки в личном кабинете?
    • Направление обмена
      • Как настроить сумму обмена и установить направление по умолчанию на главной?
      • У меня большое кол-во направлений, как удобнее вывести их на главном?
    • Инфраструктура
      • Как сделать перенос с поддомена на основной домен?
      • Почему IP-адрес клиента отображается некорректно?
      • Как восстановить доступ в панель управления, если забыли пароль?
      • Как сбросить путь доступа к админке?
      • Где расположена корневая директория вашего сайта?
      • Где найти путь к проекту и имя пользователя?
      • (Важно) Что нужно знать перед тем как обновиться?
      • Как открыть терминал и подключиться к серверу по SSH?
      • Можно ли использовать имя файла без указания полного пути в URL?
    • Другие вопросы
      • Как попробовать демо-версию админки перед покупкой?
      • Почему в курсе обмена отображаются только целые числа?
      • Как изменить e-mail или пароль администратора?
      • Как включить Технический перерыв?
      • Где найти список XML кодов валют?
      • Почему администратору на E-mail не приходят сообщения?
      • Как сменить тип начисления вознаграждений для определенных клиентов?
      • Как настроить на blockchain ссылку?
      • Настройка AML, правил сервиса и согласия пользователей
  • Автоматизация
    • Мерчанты и API
      • Мерчанты
        • Предупреждение о рисках
        • Общие настройки
        • Rapira
        • AlfaBit (Pay)
        • Exnode
        • Heleket
        • WestWallet
        • Merchant001
        • PayScrow
        • Volet (ex.ADVCash)
        • Payeer
        • PerfectMoney
        • ePayCore
        • Firekassa
        • Tron
        • Ripple
        • WhiteBit
        • Garantex
        • RPC Connection
        • LuckyPay
        • IvanPay
        • B2BWallet
        • ABCEX
      • Автовыплаты
        • Предупреждение о рисках
        • Общие настройки автовыплат
        • Rapira
        • AlfaBit (Pay)
        • Exnode
        • Heleket
        • WestWallet
        • Garantex
        • Merchant001
        • Volet (ex.ADVCash)
        • Payeer
        • Firekassa
        • Ripple
        • Tron
        • WhiteBit
        • ePayCore
        • PerfectMoney
        • PayScrow
        • RPC Connection
        • LuckyPay
        • IvanPay
        • B2BWallet
        • ABCEX
        • GoldEx
      • Автоматизация валют с разными сетями
      • Как включить автовыплату без участия оператора?
      • Почему не выводится инструкция к оплате?
      • Стратегия обработки ошибок мерчантов
    • AML сервисы
      • Провайдеры
        • GETBlock
        • Rapira
        • AMLBot
        • BitOK
      • Как включить галочку о соглашении с правилами AML?
      • Как привязать AML сервис к валюте?
  • Настройки
    • Уведомления
      • E-mail уведомление
        • Настройка SMTP Yandex
        • Resend
      • Telegram уведомление
      • Всплывающее уведомление
    • Онлайн Чаты
      • Подключение JivoSite
        • Опции для JivoSite
      • Онлайн чат в заявке
    • Настройки
      • Логирование
        • Настройка логирования
      • Архивация заявок
    • Экспорт курсов
  • Модули
    • Контент
      • Меню
      • Страницы
      • Новости
      • Вопросы и Ответы
    • Утилиты
      • Промо-коды
      • Конкурсы
      • Баннеры
      • Контакты
      • Отзывы
      • Статистика
      • Преимущество
      • Статус работы сервиса
    • Работа с наличными
      • Где найти список кодов городов для работы с наличными?
    • Черный список
      • Черный список BestChange
    • Другие модули
      • Модуль "Ссылки для Footer"
      • Модуль "Внутренний счет"
        • Внутренний счет (Мерчант)
        • Внутренний счет (Автовыплата)
      • Модуль "Информация по банковским картам"
      • Модуль "Proxy менеджер"
      • Модуль "Счета пользователей"
      • Модуль "Правила сайта"
  • Прочие
    • Диагностика ошибок
    • Загрузка статического файла
    • Подключение Google reCaptcha
Powered by GitBook

Основное

  • Требования к серверу

iEXExchanger — это профессиональное решение для создания обменника валют.

On this page
  • Этап 1: Обновление системы и установка компонентов
  • Обновление системы:
  • Установка Redis:
  • Установка необходимых PHP-расширений:
  • Установка расширения EV:
  • Этап 2: Подключение расширения EV к PHP
  • Этап 3: Настройка лимитов открытых файлов (limits.conf)
  • Этап 4: Подробная настройка веб-сервера Nginx
  • 1. Откройте конфигурационный файл Nginx
  • 2. Внесите важные изменения в конфигурацию
  • 3. Перезапустите веб-сервер Nginx
  • Этап 5: Настройка стабильной работы проекта с Supervisor и PM2
  • Этап 6: Установка корректных прав доступа на файлы проекта
  • Завершающий этап: запуск команд от имени пользователя проекта
  • Шаг 1: Авторизация под пользователем сайта
  • Шаг 2: Переход в директорию сайта
  • Шаг 3: Запуск дополнительных команд для настройки проекта

Was this helpful?

  1. УСТАНОВКА И НАСТРОЙКА
  2. Установка системы
  3. Установка ПО

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

PreviousШаг 2: Настройка FastPanelNextШаг 4: Запуск процессов

Last updated 14 days ago

Was this helpful?

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

Важно:

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

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

Обновление системы:

  • Сервер загрузит и установит последние версии пакетов, повышая безопасность и стабильность работы.

Установка Redis:

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

Установка необходимых PHP-расширений:

  • Эти компоненты обязательны для корректной работы обменника (математические функции, обработка изображений, поддержка дополнительных форматов и др.).

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

  • Расширение EV улучшает производительность при обработке большого количества запросов.

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

sudo apt update
sudo apt upgrade
sudo apt install redis
sudo apt install build-essential php-pear php8.2-dev libevent-dev
sudo apt install php8.2-bcmath php8.2-gmp php8.2-intl php8.2-soap php-imagick php-ioncube php-redis php-yaml
pecl channel-update pecl.php.net
pecl install ev

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

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

  • Если появится вопрос: Do you want to continue? [Y/n]

Ответьте, нажав клавишу Y, затем нажмите Enter.

  • Если появится вопрос: Enable internal debugging in ev [no]:

Не вводите ничего, просто нажмите клавишу Enter, чтобы выбрать значение по умолчанию (no).

После выполнения всех команд сервер будет полностью подготовлен к следующему этапу установки.

Этап 2: Подключение расширения EV к PHP

Это расширение необходимо подключить отдельно, чтобы PHP мог его использовать:

echo "extension=ev.so" | sudo tee /etc/php/8.2/mods-available/ev.ini
sudo phpenmod ev

Что произойдёт:

  • Будет создан и подключён конфигурационный файл расширения EV.

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

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

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

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

www-data        soft    nofile  10000
www-data        hard    nofile  10000
имя_пользователя soft   nofile  10000
имя_пользователя hard   nofile  10000

Здесь:

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

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

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

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

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

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

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

На 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
  • sudo — выполнение команды с правами администратора.

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

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

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

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

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

pid /var/run/nginx.pid;

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

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

events {
    worker_connections  1024;
}

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

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

worker_rlimit_nofile 10000;

events {
    worker_connections 10000;
    multi_accept on;
}

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

  • worker_rlimit_nofile 10000

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

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

  • worker_connections 10000

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

  • multi_accept on

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sudo systemctl restart nginx

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

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

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

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

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

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

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

Совет

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

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

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

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

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

sudo chown -R имя_пользователя: путь_к_проекту

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

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

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

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

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

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

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

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

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

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

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

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

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

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

su -l имя_пользователя

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

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

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

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

cd www/app.ваш_домен

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

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

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

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

php artisan product:apply-update

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

php artisan key:generate
php artisan reverb:install

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

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

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

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

Как открыть терминал и подключиться к серверу по SSH?
Настройка Supervisor
Настройка PM2
Где найти путь к проекту и имя пользователя?