Как разобраться с кейсом: open Server планировщик задать cron.bat?
Ссылка скопирована
Сейчас ситуация такая: мне нужно настроить cron, но у меня он работает через консоль. В консоле вот этот код:
#!/usr/bin/env php <?php require __DIR__.'/../vendor/autoload.php'; require_once __DIR__."/../config.php"; //use src\core\Database; use Symfony\Component\Console\Application; $application = new Application(); $application->add(new \command\CronCommand()); $application->add(new \command\PaymentCommand()); $application->add(new \command\ServicesCommand()); $application->add(new \command\YooKassaCommand()); $application->add(new \command\QueueMailCommand()); $application->run();
Я так понимаю нужно делать bot файл, чтобы cron его запускал?
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
code-review
Нужен ли код-ревью React/TypeScript проекта?
1 ответ


Для Open Server планировщик действительно удобнее запускать через
.bat, который вызывает нужный PHP и ваш консольный скрипт. Сам PHP-файл с shebang#!/usr/bin/env phpв Windows напрямую планировщиком обычно не запускается так, как в Linux, поэтому нужен явный путь к интерпретатору.Пример
cron.bat:@echo off cd /d D:OSPanelhomesite.localpublic D:OSPanelmodulesPHP-8.3php.exe binconsole cron
Если ваш файл называется, например,
consoleи лежит в папкеbin, путь должен совпадать с реальным. Важны две вещи:cd /dв корень проекта и запуск именно тем PHP, под которым у вас стоят расширения и зависимости.Если консольный скрипт сам регистрирует команды Symfony, то команда может выглядеть так:
@echo off cd /d D:OSPanelhomeproject.localpublic D:OSPanelmodulesPHP-8.3php.exe console CronCommand
Точное имя зависит от того, как команда названа внутри класса. Проверьте список команд:
D:OSPanelmodulesPHP-8.3php.exe console list
Для отладки добавьте логирование вывода:
@echo off cd /d D:OSPanelhomeproject.localpublic D:OSPanelmodulesPHP-8.3php.exe console cron >> D:OSPanellogscron-project.log 2>&1
В планировщике Open Server или Windows Task Scheduler указывайте запуск этого bat-файла. Если используете Windows Task Scheduler, задайте “Start in” как папку проекта, либо оставьте
cd /dвнутри bat.Итог: да, делайте
cron.bat. Не полагайтесь на shebang в Windows. Укажите полный путь к PHP Open Server, перейдите в корень проекта, запускайте Symfony console-команду и пишите вывод в лог, иначе ошибки cron будет трудно отлавливать.