Шаг 3: Команды терминала
Last updated
Was this helpful?
Last updated
Was this helpful?
На этом этапе вам необходимо подключиться к серверу через SSH и выполнить набор специальных команд. Эти команды подготовят ваш сервер, установят и обновят важные компоненты, которые необходимы для стабильной и быстрой работы вашего обменника.
На этом этапе необходимо подключиться к серверу через SSH под пользователем root, так как именно root имеет полный доступ к системе и может выполнять все необходимые команды. Это критично для корректной установки и настройки компонентов, обеспечивающих стабильную и быструю работу обменника.
Сервер загрузит и установит последние версии пакетов, повышая безопасность и стабильность работы.
Redis используется для кэширования данных и работы с очередями, обеспечивая высокую скорость работы приложения.
Эти компоненты обязательны для корректной работы обменника (математические функции, обработка изображений, поддержка дополнительных форматов и др.).
Расширение EV улучшает производительность при обработке большого количества запросов.
Команды для выполнения:
Во время выполнения команд терминала могут появляться следующие вопросы:
Если появится вопрос: Do you want to continue? [Y/n]
Ответьте, нажав клавишу Y, затем нажмите Enter.
Если появится вопрос: Enable internal debugging in ev [no]:
Не вводите ничего, просто нажмите клавишу Enter, чтобы выбрать значение по умолчанию (no).
После выполнения всех команд сервер будет полностью подготовлен к следующему этапу установки.
Это расширение необходимо подключить отдельно, чтобы PHP мог его использовать:
Что произойдёт:
Будет создан и подключён конфигурационный файл расширения EV.
Данная настройка необходима, чтобы сервер стабильно обрабатывал большое количество одновременных подключений, запросов и корректно функционировал под высокими нагрузками.
Откройте терминал сервера и выполните следующую команду для открытия конфигурационного файла:
В открывшемся редакторе файла перейдите в самый низ и добавьте следующие строки (замените слово имя_пользователя на фактическое имя вашего пользователя сервера):
Здесь:
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.
На этом этапе вы настроите веб-сервер Nginx таким образом, чтобы он мог без перебоев работать с большим количеством одновременно подключенных пользователей и эффективно справлялся с повышенной нагрузкой.
Эта настройка особенно важна, так как по умолчанию сервер имеет достаточно низкие ограничения на количество одновременных подключений, что может привести к ошибкам и проблемам в работе обменника при увеличении числа посетителей и запросов.
Сначала подключитесь к серверу через SSH.
Затем в терминале введите следующую команду:
sudo — выполнение команды с правами администратора.
nano — текстовый редактор в терминале.
/etc/nginx/nginx.conf — это основной файл настроек веб-сервера Nginx.
После выполнения этой команды откроется конфигурация веб-сервера.
В открывшемся файле найдите строчку:
Эта строчка показывает, где хранится файл, в котором записан ID процесса Nginx. Вам нужно вставить настройки сразу после этой строки, чтобы изменения были максимально эффективны и правильно применялись сервером.
Удалите стандартный блок настроек, который выглядит так:
Вместо удалённого блока добавьте новый блок, указанный ниже:
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.
Теперь изменения нужно применить, перезапустив сервер Nginx.
Для этого выполните команду:
Эта команда перезапустит веб-сервер, и все сделанные вами изменения вступят в силу сразу после этого.
Для обеспечения стабильной работы вашего обменника даже при сбоях или перезагрузке сервера необходимо настроить специальные инструменты автоматического управления приложениями:
Supervisor — это инструмент, который следит за фоновыми процессами вашего Laravel-приложения (например, очереди задач, отправка уведомлений, мониторинг производительности). Supervisor автоматически перезапускает процессы, если они вдруг остановились, гарантируя бесперебойную работу вашего сайта.
PM2 — это инструмент, который управляет работой вашего Angular frontend-приложения. PM2 обеспечивает автоматический перезапуск приложения при сбоях, мониторинг использования ресурсов и удобное ведение журналов (логов).
Обязательно выполните инструкции по ссылкам ниже для настройки каждого компонента:
После того как вы завершите настройку, сервер будет полностью готов к надёжной и стабильной работе вашего обменника.
Обязательно убедитесь, что выполнили инструкции полностью и без ошибок, так как от этого зависит надёжность работы вашего обменника.
Правильная настройка прав доступа необходима для безопасной работы вашего backend-приложения (Laravel). Корректно выставленные права позволяют вашему пользователю управлять всеми файлами проекта, выполнять команды от своего имени и избегать ошибок прав доступа.
После загрузки файлов на сервер может возникнуть ситуация, когда пользователь сайта (созданный в FastPanel) не имеет прав на редактирование или запуск некоторых файлов или директорий. Данная настройка исправит эту проблему.
Обязательно замените указанные значения на свои:
имя_пользователя – имя пользователя, созданное в панели управления (например, пользователь FastPanel).
путь_к_проекту – путь к директории вашего сайта на сервере (например, /var/www/ваш_домен или /var/www/app.ваш_домен).
Что делает эта команда:
sudo – выполняет команду с правами администратора.
chown – изменяет владельца файлов и папок.
Параметр -R – применяет изменения ко всем файлам и папкам внутри указанной директории.
После выполнения этой команды, у вас будут правильные права на управление всеми файлами и директориями вашего проекта.
На этом этапе необходимо выполнить несколько команд в терминале, которые завершат подготовку вашего проекта и сделают его полностью рабочим и готовым к использованию.
Выполните эти шаги по порядку и внимательно следуйте инструкции ниже.
Сначала авторизуйтесь под пользователем сайта, чтобы все команды выполнялись от его имени, а не от администратора. Это безопасно и правильно для работы приложения.
Введите в терминал следующую команду:
Замените имя_пользователя на имя, которое вы создавали в панели FastPanel.
Теперь перейдите в каталог (папку) вашего проекта, чтобы команды запускались именно для него.
Для этого используйте команду:
Обязательно замените /var/www/app.
ваш_домен
на полный путь к вашему проекту.
Теперь нужно выполнить три команды Laravel, которые завершат подготовку проекта:
Введите каждую команду последовательно и после каждой нажимайте Enter:
Что делают эти команды:
php artisan product:apply-update – устанавливает или обновляет базовые компоненты и выполняет все необходимые миграции для работы обменника.
php artisan key:generate – генерирует уникальный ключ приложения, который будет использоваться для шифрования данных. Это важно для безопасности вашего сайта.
php artisan reverb:install – настраивает работу сервиса Reverb, который обеспечивает обмен событиями в реальном времени. Это необходимо для работы уведомлений, статусов и других динамических функций на вашем сайте.