Обновили Laravel 5.3 до Laravel 5.4 используя этот контейнер https://github.com/shin1x1/docker-laravel-on-php7-apache
PHP изменилось с 5.X до 7. В кроне стояла такая задача
* * * * * php /var/www/laravel/artisan schedule:run >>/dev/null 2>&1
На предыдущем билде все работало нормально, а теперь перестало
Сама команда, если запустить ее из SSH
php /var/www/laravel/artisan schedule:run >>/dev/null 2>&1
работает нормально.
Если перенаправить вывод ошибок из крона в файл, например
* * * * * php /var/www/laravel/artisan schedule:run > /etc/log/faillog
То в файле получаем такое
/bin/sh: 1: php: not found
Вопрос - почему крон не видит PHP и куда копать?
/bin/sh: 1: php: not found
очевидно, что надо либо указать полный путь к программе php, узнать который можно, например, такой командой:
$ which php
либо добавить в начало файла с cron-заданием переопределение значения переменной окружения PATH:
PATH=значение
нужное значение можно узнать, например, такой командой:
$ echo $PATH
p.s. приведённые команды, естественно, надо выполнять внутри контейнера.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей