Почему Crontab дает мне ошибку с моим PHP-скриптом при его запуске с терминала?

У меня возникли проблемы с запуском Crontab с файлами PHP.

У меня есть те же самые php-скрипты, которые работают в Crontab более 6 месяцев, но несколько дней назад таинственным образом они перестали правильно выполнять код. Crontab работает, но сценарий создает ошибку. Другая интересная вещь заключается в том, что тот же скрипт работает без ошибок в SSH-терминале.

В чем проблема? Есть ли способ настроить Crontab для работы с той же конфигурацией терминала SSH?

Наиболее распространенная причина, по которой скрипт работает из командной строки, но не из crontab, заключается в том, что сценарий зависит от переменной среды. У Crontabs есть только несколько переменных окружения: обычно только HOME , USER , SHELL (устанавливается в /bin/sh ) и PATH (устанавливается на системную настройку по умолчанию). Если вам нужно больше, вы должны определить их в файле crontab или source ~/.profile из команды.

Возможно, у вас установлены две версии PHP: первая, которая входит в вашу командную строку $PATH и первая, которая появляется в вашей системе по умолчанию $PATH , а измененный по умолчанию PHP по умолчанию изменился в последнее время. Но невозможно сделать больше, чем образованное предположение, поскольку вы не говорите, какую ошибку вы получаете.

Убедитесь, что вы выполняете скрипты crontab как тот же пользователь, что и тот, с которым вы вошли в систему.

Некоторые права env var или file, вероятно, были изменены для одного из пользователей.

Еще одна вещь, которую нельзя предположить в скрипте, выполняемом cron: значение $ HOME. Используйте $ HOME явно, не предполагайте, что оно имеет определенное значение. Вызовите команды и файлы справки по полному пути.