Estou tentando configurar um cron job para executar um script PHP diariamente como parte de um sistema de reservas baseado na web. Ele está funcionando perfeitamente há vários anos em um servidor Apache diferente usando isso no crontab:
0 3 * * * wget -q -O /dev/null http://www.my_other_domain.org.uk/scheduled/my_script.php
Acabei de instalar o script em outro servidor Apache e ele é executado corretamente quando chamado pelo navegador. No entanto, quando tento usar o cron, o daemon do cron fornece a mensagem:
-: warning: setlocale: LC_ALL: cannot change locale (en_GB.utf-8)
-: wget: command not found
Quando tentei
0 3 * * * /usr/bin/env wget -q -O /dev/null http://www.mydomain.org.uk/scheduled/my_script.php
Recebi a mensagem:
-: warning: setlocale: LC_ALL: cannot change locale (en_GB.utf-8)
-: /usr/bin/env: No such file or directory
Primeiramente, estou certo em assumir que o aviso de setlocale não é relevante para o problema?
Eu também tentei
0 3 * * * /usr/bin/php /var/www/vhosts/mydomain/httpdocs/scheduled/my_script.php
que dá
-: /usr/bin/php: No such file or directory
Eu também tentei colocar um shebang como a primeira linha do meu script e fazer o cron chamá-lo usando o caminho completo. O daemon do cron relatou que não havia tal arquivo ou diretório como /[full_path]/my_script.php.
Tentando usar o curl não foi melhor.
Eu não tenho acesso ao shell do servidor e estou configurando a tarefa cron através do painel de controle do Plesk. O cron job parece estar sendo executado conforme planejado. O administrador do sistema fez o seguinte para mim:
#which php
/usr/bin/php
#which wget
/usr/bin/wget
#which curl
/usr/bin/curl
Isso parece confirmar que os comandos estão no local certo.
O texto acima é um histórico abreviado - perdi a conta das permutações e combinações que tentei, principalmente como resultado da leitura de conselhos neste e em outros fóruns.
Alguém pode me dizer por que o cron job não consegue encontrar os comandos e sugerir uma solução?