Laravel, популярный PHP-фреймворк, предоставляет надежную систему очередей заданий, которая позволяет разгрузить трудоемкие задачи и выполнить их асинхронно в фоновом режиме. Если вы размещаете свое приложение Laravel на cPanel, эта статья расскажет вам о различных методах запуска заданий Laravel на вашем хосте cPanel.
Метод 1. Использование планировщика Laravel
- Сначала войдите в свою учетную запись cPanel и перейдите в раздел «Диспетчер файлов».
- Найдите корневой каталог вашего приложения Laravel.
- Создайте новый файл с именем
job-runner.phpв корневом каталоге. - Откройте файл
job-runner.phpи добавьте следующий код:
<?php
require __DIR__.'/vendor/autoload.php';
use Illuminate\Contracts\Console\Kernel;
$app = require_once __DIR__.'/bootstrap/app.php';
$kernel = $app->make(Kernel::class);
$kernel->bootstrap();
$kernel->call('queue:work', ['--daemon' => true]);
-
Сохраните файл и закройте его.
-
Затем перейдите на панель управления cPanel и найдите раздел «Задания Cron».
-
Добавьте новое задание cron с помощью следующей команды:
/usr/bin/php -q /path/to/your/laravel/app/job-runner.php
Обязательно замените /path/to/your/laravel/app/фактическим путем к вашему приложению Laravel.
- Установите желаемую частоту выполнения задания (например, каждую минуту, каждые пять минут и т. д.).
- Сохраните задание cron, и Laravel теперь автоматически обработает задания в очереди.
Метод 2: использование Supervisor
- Подключитесь к хосту cPanel через SSH.
- Установите Supervisor, выполнив следующую команду:
sudo yum install supervisor
- После установки Supervisor создайте новый файл конфигурации, выполнив:
sudo nano /etc/supervisord.d/laravel-worker.conf
- В файл добавьте следующую конфигурацию:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/laravel/app/artisan queue:work --tries=3
autostart=true
autorestart=true
user=your_cpanel_username
numprocs=8
redirect_stderr=true
stdout_logfile=/path/to/your/laravel/app/storage/logs/worker.log
Обязательно замените /path/to/your/laravel/app/фактическим путем к вашему приложению Laravel и замените your_cpanel_usernameсвоим именем пользователя cPanel.
-
Сохраните файл и выйдите из текстового редактора.
-
Перезапустите Supervisor, чтобы применить изменения:
sudo systemctl restart supervisord
- Supervisor теперь будет автоматически управлять вашими работниками очереди Laravel.
Метод 3. Использование собственного драйвера очереди
- В приложении Laravel откройте файл
.env. - Найдите переменную
QUEUE_CONNECTIONи измените ее значение наdatabase:
QUEUE_CONNECTION=database
-
Сохраните файл.
-
Подключитесь к хосту cPanel через SSH и перейдите в корневой каталог вашего приложения Laravel.
-
Выполните следующую команду, чтобы создать необходимую таблицу базы данных для очереди:
php artisan queue:table
php artisan migrate
- Теперь вы можете отправлять задания с помощью API очереди Laravel, и они будут храниться в базе данных.
- Чтобы обработать задания в очереди, вы можете создать задание cron или использовать Supervisor, как указано в предыдущих методах.
Запуск заданий Laravel на хосте cPanel можно выполнить с помощью различных методов, таких как использование планировщика Laravel, Supervisor или специального драйвера очереди. Каждый метод имеет свои преимущества, поэтому выберите тот, который лучше всего соответствует вашим требованиям. Благодаря этим подходам вы сможете эффективно решать фоновые задачи и повышать производительность вашего приложения Laravel.