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
$PATH
no 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
$PATH
no script (isso é ruim, o usuário deve ser capaz de substituir o PATH no ambiente para usar binários diferentes, se quiserem); -
Defina
php
explicitamente no seu script (ruim pelo mesmo motivo).