Шаг 3: Команды терминала
На этом этапе вам необходимо подключиться к серверу через SSH и выполнить набор специальных команд. Эти команды подготовят ваш сервер, установят и обновят важные компоненты, которые необходимы для стабильной и быстрой работы вашего обменника.
Как открыть терминал и подключиться к серверу по 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)
Данная настройка необходима, чтобы сервер стабильно обрабатывал большое количество одновременных подключений, запросов и корректно функционировал под высокими нагрузками.
Откройте терминал сервера и выполните следующую команду для открытия конфигурационного файла:
sudo nano /etc/security/limits.conf
В открывшемся редакторе файла перейдите в самый низ и добавьте следующие строки (замените слово имя_пользователя на фактическое имя вашего пользователя сервера):

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;
}
Вместо удалённого блока добавьте новый блок, указанный ниже:
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?