По словам мужчины:
Демон cron запускает подоболочку из вашего каталога HOME. Если вы планируете запускать команду, когда вы не вошли в систему, и вы хотите, чтобы команды в вашем файле .profile выполнялись, команда должна явно прочитать ваш файл .profile.
Демон cron предоставляет среду по умолчанию для каждой оболочки, определяя HOME, LOGNAME, SHELL (= / usr / bin / sh)
и PATH (= / usr / bin).
Таким образом, демон cron не знает, где находится php, и вы должны указать полный путь php вручную, например (я не знаю ваш реальный путь PHP):
#!/bin/sh
/usr/local/bin/php /home/v/file.php
sh /root/x/some.sh
Другим способом является создание файла / etc / profile (или вашего .profile / .bashrc), например
* * * * * . /home/v/.bashrc ; sh /home/v/test.sh
Это полезно, если ваш .bashrc устанавливает переменные окружения, которые вам нужны (например, PATH)
РЕДАКТИРОВАТЬ
Интересное чтение - « Новичок: введение в cron », не стоит недооценивать статью из заголовка (это чтение для всех), на самом деле она хорошо написана завершена и идеально отвечает на ваш вопрос:
...
PATH содержит каталоги, которые будут в пути поиска для cron, например, если у вас есть программа 'foo' в каталоге / usr / cog / bin, возможно, стоит добавить / usr / cog / bin в путь, так как вам не придется использовать полный путь к 'foo' каждый раз, когда вы хотите вызвать его.
...