Isso provavelmente é porque seu $PATH não está definido. Quando você tenta executar php em seu shell, na realidade, ele procura o destino absoluto de php de seu $PATH , que é uma lista de diretórios a partir dos quais localizar executáveis. Isso é definido em seu ambiente, mas o cron não compartilha esse ambiente (na verdade, ele provavelmente tem um% ou não coet =% vazio). Existem algumas soluções (do melhor para o pior):
- Defina
$PATHno seu crontab adicionando algo assim ao topo:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-
Use o caminho completo para o executável
$PATHno script (isso é ruim, o usuário deve ser capaz de substituir o PATH no ambiente para usar binários diferentes, se quiserem); -
Defina
phpexplicitamente no seu script (ruim pelo mesmo motivo).