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