De acordo com o homem:
O daemon cron inicia um subshell a partir do diretório HOME. Se você agendar um comando para execução quando não estiver conectado e desejar que os comandos no seu arquivo .profile sejam executados, o comando deverá ler explicitamente o arquivo .profile.
O daemon cron fornece um ambiente padrão para cada shell, definindo HOME, LOGNAME, SHELL (= / usr / bin / sh)
e PATH (= / usr / bin).
Portanto, o cron daemon não sabe onde está o php e você deve especificar o caminho completo do php manualmente, por exemplo (não sei o seu caminho real do PHP):
#!/bin/sh
/usr/local/bin/php /home/v/file.php
sh /root/x/some.sh
Outra maneira é obter o / etc / profile (ou seu .profile / .bashrc), por exemplo
* * * * * . /home/v/.bashrc ; sh /home/v/test.sh
Isso é útil se o seu .bashrc definir as variáveis de ambiente necessárias (por exemplo, PATH)
EDITAR
Uma leitura interessante é " Novato: Introdução ao cron ", não subestime o artigo do título (é uma leitura para todos); na verdade, está bem escrito, completo e responde perfeitamente à sua pergunta:
...
PATH contém os diretórios que estarão no caminho de busca do cron, por exemplo, se você tiver um programa 'foo' no diretório / usr / cog / bin, pode valer a pena adicionar / usr / cog / bin ao diretório path, pois ele impedirá que você use o caminho completo para 'foo' toda vez que quiser chamá-lo.
...