В моем приложении Laravel я создал запланированное задание, как определено в предыдущем вопросе, который я задал . По сути, он захватывает данные и обновляет несколько таблиц.
Я следовал за справочной статьей 1 и 1 о создании cronjobs .
Подводя итог этой статье, он сказал следующее.
SSH к вашему серверу, для которого вы хотите настроить новый cronjob, используйте whereis php , чтобы найти местоположение вашего PHP Binary, затем используйте команду crontab для доступа crontab и добавьте новую работу.
Для этого потребуется путь PHP и путь к скрипту, который должен быть запущен.
Проблема в том, что когда я запускаю эту команду, я получаю следующее.
Нет crontab для [имя пользователя]
Итак, я тогда гуглил и, похоже, некоторые общие хосты не позволяют вам использовать или даже получать доступ к crontab.
На моем сервере общего хостинга путь к php-7.1-cli выглядит следующим образом /usr/bin/php7.1-cli
Теперь Artisan является частью Laravel и требует более высокую версию PHP, чем та, что находится в \ usr \ bin \ php
Учитывая это, для cronjob я думал, что смогу сделать что-то вроде этого:
* * * * * /usr/bin/php7.1-cli /path/to/artisan schedule:run >> /dev/null 2>&1
Или
* * * * * /usr/bin/php7.1-cli /path/to/mynewable/artisan schedule:run >> /dev/null 2>&1
Моя структура папок выглядит следующим образом:
root
/mynewable
Но когда я запускаю одну из этих команд, ничего не происходит.
1 & 1 также имеет встроенного создателя задания cron, но это позволяет мне только указать URL-путь к файлу, который будет запускать необходимый скрипт.
Мне мешают использовать crontab? В этом случае указание URL-адреса кажется нецелесообразным, поскольку пользователю не нужно проверять, но создание пути в веб-маршрутах для запуска планировщика Laravel кажется небольшой дырой в безопасности.