Não é possível executar o cron job para um script php

Não é possível executar o cron job para um script php

Quero executar um script php usando o cron job no localhost. Meu script está localizado em:

/opt/lampp/htdocs/rrugd/myscript.php

Como opt está no root, tentei adicionar o cron job para root, assim como para o usuário normal, mas ele não está em execução. Este é o cron job para executar o script php a cada 2 minutos:

*/2 * * * * php /opt/lampp/htdocs/rrugd/myscript.php

Meu script serve basicamente para truncar uma tabela do banco de dados. Na verdade, isso acontecerá à meia-noite, então as variáveis ​​reais do cron job mudarão para

00 00 * * * php /path/to/script.php

Mas para testes usei a cada dois minutos. Pesquisei na internet e no AU, mas não consigo executá-lo. Vi algo relacionado à configuração de um PATH mas não entendi o que fazer exatamente nesse método.

Além disso, gostaria de especificar que o script PHP myscript.phpNÃO foi executado na CLI com o comando PHP, porém ele é executado quando executado ou chamado através do navegador no host local!

Informações PHP:

some@somepc$: php -v
PHP 5.5.3-1ubuntu2.2 (cli) (built: Feb 28 2014 20:06:05) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies

Responder1

Assumindo que éphp5; Existem exemplos de uso de php em um cronjob. Você pode tentar um destes seguindo;

  • Para usar php5no terminal você precisará php5 cliinstalado. Primeiro, verifique se php5 & clia funcionalidade está disponível. por isso;
johan@ubusrv:~$ php -v
PHP 5.2.4-2ubuntu5.3 com Suhosin-Patch 0.9.6.2 (cli) (construído: 23 de julho de 2008 06:44:49)
Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0,
Direitos autorais (c) 1998-2007 Zend Technologies

O comando exibe sua versão do php5 junto com o php5 (cli) instalado. Caso contrário, instale-o usando o seguinte comando;

sudo apt-get install php5-cli
  • Uma vez instalado, você pode adicionar phpseu caminho binário ao cronjob conforme abaixo;

usandophpouphp5

*/2 * * * * php /opt/lampp/htdocs/rrugd/myscript.php

usandophpcaminho binário

*/2 * * * * /usr/local/bin/php /opt/lampp/htdocs/rrugd/myscript.php

Você também pode usar os comandos abaixo para descobrir onde seuphp/php5caminho é;

johan@ubusrv:~$ qual php
/usr/bin/php

johan@ubusrv:~/cli$ onde está php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz

johan@ubusrv:~/cli$ type -a php
php é /usr/bin/php
  • Em outro lugar, se você precisar chamar um script php usando URL; você pode simplesmente usarlince,ondulaçãoouwget. Certifique-se de ter colocado seu script php no diretório wwwou public_htmle chame o caminho corretamente no cronjob.
*/2 * * * * wget -q http://localhost//myscript.php

Mais sobre: PHP Cron Job: como executar script PHP usando Crontab no Linux

informação relacionada