Как установить supervisor в Ubuntu 22.04 для работы с Laravel
Supervisor - это системный процесс-менеджер, который позволяет запускать и контролировать фоновые процессы в операционной системе. Он особенно полезен и необходим при работе с Laravel, где может потребоваться запуск очередей задач, планировщиков и других фоновых процессов.
В этой статье я расскажу вам, как установить и настроить supervisor в Ubuntu 22.04 для работы с Laravel.
Обновление системы
Перед установкой supervisor необходимо обновить ОС. Выполните следующие команды в терминале:
sudo apt update
sudo apt upgradeУстановка supervisor
Для установки supervisor выполните следующую команду:
sudo apt install supervisorСоздание конфигурационного файла для Laravel
Теперь нам необходимо создать конфигурационный файл для запуска Laravel-приложения с помощью supervisor. Создайте новый файл с расширением .conf в директории /etc/supervisor/conf.d/. Например, выполните следующую команду:
sudo nano /etc/supervisor/conf.d/laravel-worker.confОткроется текстовый редактор nano. Вставьте следующий код в файл:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /путь_к_проекту/artisan queue:work --tries=3 --sleep=3autostart=trueautorestart=trueuser=пользователь_системы
numprocs=8redirect_stderr=truestdout_logfile=/путь_к_лог_файлу/worker.logВнимание: Замените /путь_к_проекту/ на фактический путь к вашему Laravel-проекту, /путь_к_лог_файлу/worker.log на путь к желаемому файлу журнала, а пользователь_системы на имя пользователя, под которым вы работаете. (обычно это www-data).
Ни в коем случае не используйте root
Более подробно о флагах, с которыми запускается artisan queue:work можно почитать в документации Laravel
Перезапуск supervisor и запуск Laravel-воркера
После создания конфигурационного файла необходимо перезапустить supervisor, чтобы он загрузил новый файл. Выполните следующую команду:
sudo supervisorctl reread
sudo supervisorctl updateТеперь мы можем запустить Laravel-воркер, используя supervisor. Выполните следующую команду:
sudo supervisorctl start laravel-worker:*Проверка работоспособности
Проверьте работу Laravel-воркера, выполните следующую команду:
sudo supervisorctl statusВы должны увидеть вывод, подобный следующему:
laravel-worker:laravel-worker_00 RUNNING pid 12345, uptime 0:10:00laravel-worker:laravel-worker_01 RUNNING pid 23456, uptime 0:05:00...Если видите подобный вывод, это означает, что supervisor успешно запустил Laravel-воркера.