За словами чоловіка:
Демон 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)
EDIT
Цікаве прочитання: « Новачок: Вступ до крона », не варто недооцінювати статтю з назви (Це є читання для всіх), адже вона добре написана в повному обсязі і чудово відповідає на ваше запитання:
...
PATH містить каталоги, які будуть знаходитись у шляху пошуку для cron, наприклад, якщо у вас є програма 'foo' у каталозі / usr / cog / bin, можливо, варто додати / usr / cog / bin до шлях, тому що це зупинить вам необхідність використовувати повний шлях до "foo" кожного разу, коли ви захочете його зателефонувати.
...