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

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

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

Важно:

Этап 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 обеспечивает автоматический перезапуск приложения при сбоях, мониторинг использования ресурсов и удобное ведение журналов (логов).

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

Настройка SupervisorНастройка 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, который обеспечивает обмен событиями в реальном времени. Это необходимо для работы уведомлений, статусов и других динамических функций на вашем сайте.

Last updated

Was this helpful?