Задать вопрос
@IliaMal

Как выполнить файл из консоли laravel?

Здравствуйте.

Через роуты на сайте все работает корректно.
Но при попытке добавить задачи на крон ларавель не видит модули.

Настраиваю в файле routes/console.php, все по инструкции из документации

Если выполнить файл в том виде что он был изначально, то ошибка Class "Artisan" not found, если добавить
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/..");
require $_SERVER["DOCUMENT_ROOT"].'/vendor/autoload.php';
то ошибка Uncaught RuntimeException: A facade root has not been set.

Как выполнить нужный мне код из консоли в routes/console.php?
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 2
@programmer403
php -f /{path}/console.php

console.php не для того чтобы его напрямую запускать с php. А для регистрации консольных команд:
Artisan::command('inspire2'
которые потом вы запускаете командой
php artisan inspire2

Дальше уже смотрите в сторону Schedule
Ответ написан
Комментировать
Fragster
@Fragster
помогло? отметь решением!
оставить в кроне только
* * * * * cd /полный/путь/до/сайта && /usr/bin/php8.3 artisan schedule:run >> /dev/null 2>&1

остальное разруливать в routes/console.php (и оно прям вот по дефолту работает)

перед этим грохнуть папку вендор и файл композер.лок, выполнить composer install
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga
Чекпоинты на ум приходят сразу (проверяйте на локальном сервере тоже) -

1) проверить, что команда console отрабатывается из папки лары
2) проверить, что команда console отрабатывается с абсолютными путями на проде
3) если не отрабатывается - сбросьте кэши, как минимум, и разбирайтесь почему
4) проверьте версию PHP и самое смешное, проверьте shortags. Я уже лет 10 как отказался от shorTags.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы