Executando PHP com CRON no Ubuntu

2

Por favor, diga-me o que estou fazendo de errado, por que isso não acontece:

 3 * * * * /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log

logPHP.log é feito, mas está vazio quando isso é executado. Se eu substituir o 3 por * , o script começa a ser executado, mas nunca termina.

Quando copio isso no Terminal:

/usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log

Tudo funciona perfeitamente como deveria.

Ubuntu 10.04 LTS,

PHP 5.3.2-1ubuntu4.9 with Suhosin-Patch (cli)
    
por justnorris 28.08.2011 / 11:08

2 respostas

10

Se você usar crontab -e para criar entradas do cron, ignore a parte do usuário ausente.

Verifique a sintaxe das entradas do cron, está faltando o "usuário", por exemplo :

3 * * * * some_user_here /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log

Verifique se some_usuário_aqui como permissões de gravação no arquivo de log, verificando se não há erros quando você faz isso:

su -m some_user_here
cd /var/www/
touch logPHP.log

Verifique se o executável do php está presente onde você especificou confirmando que / usr / bin / php é retornado quando você faz isto:

whereis php

Você usou um guia ao configurar sua entrada no cron? link ?

    
por 28.08.2011 / 11:15
0

Você está registrando a saída padrão (STDOUT) em um arquivo de log, mas está ignorando o erro padrão (STDERR). É quase sempre uma boa ideia enviar o STDERR para um arquivo de log. Se você ignorar os erros, poderá estar perdendo problemas críticos.

Modifique seu cronjob para redirecionar o STDERR para o mesmo arquivo de log, usando 2>&1 :

3 * * * * some_user_here /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log 2>&1

Ou, como alternativa, envie os erros para um segundo arquivo de log:

3 * * * * some_user_here /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log 2> /var/www/logPHP.err

Em seguida, permita que o script seja executado novamente e verifique o erro /var/www/logPHP.log em busca de erros. Nesse ponto, você provavelmente será capaz de resolver o problema sozinho. Se você ainda precisar de ajuda, pode atualizar sua resposta aqui com a saída do log de erros.

    
por 29.08.2011 / 18:52

Tags