No se puede ejecutar el trabajo cron para un script php

No se puede ejecutar el trabajo cron para un script php

Quiero ejecutar un script php usando un trabajo cron en localhost. Mi guión se encuentra en:

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

Como opt está bajo la raíz, intenté agregar el trabajo cron para la raíz, así como para el usuario normal, pero no se está ejecutando. Este es el trabajo cron para ejecutar el script php cada 2 minutos:

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

Básicamente, mi script está destinado a truncar una tabla de la base de datos. En realidad, sucederá a medianoche, por lo que las variables reales del trabajo cron cambiarán a

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

Pero para probar lo he usado cada dos minutos. He buscado en Internet y en AU, pero no puedo ejecutarlo. Vi algo relacionado con establecer una RUTA pero no entendí qué se debe hacer exactamente en ese método.

Además, me gustaría especificar que el script PHP myscript.phpNO se ejecutó en CLI con el comando PHP, sin embargo, se ejecuta cuando se ejecuta o se llama a través del navegador en localhost.

Información 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

Respuesta1

Asumiendo suphp5; Hay casos de uso de php en un cronjob. Puede probar uno de estos siguiendo;

  • Para poder utilizarlo php5en la terminal necesitarás tenerlo php5 cliinstalado. Primero, verifique si php5 & clila funcionalidad está disponible. para eso;
johan@ubusrv:~$ php -v
PHP 5.2.4-2ubuntu5.3 con Suhosin-Patch 0.9.6.2 (cli) (compilado: 23 de julio de 2008 06:44:49)
Copyright (c) 1997-2007 El grupo PHP Zend Engine v2.2.0,
Copyright (c) 1998-2007 Tecnologías Zend

El comando muestra que su versión de php5 junto con php5 (cli) están instaladas. De lo contrario, instálelo usando el siguiente comando;

sudo apt-get instalar php5-cli
  • Una vez instalado, puede agregar phpsu ruta binaria al cronjob como se muestra a continuación;

usandoPHPophp5

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

usandoPHPruta binaria

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

También puede utilizar los siguientes comandos para encontrar dónde está suphp/php5el camino es;

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

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

johan@ubusrv:~/cli$ escriba -a php
php es /usr/bin/php
  • En otros lugares, si necesita llamar a un script php mediante URL; simplemente puedes usarlince,rizooobtener. Asegúrese de haber colocado su script php dentro del directorio wwwo public_htmly llame a la ruta correctamente en el cronjob.
*/2 * * * * wget -q http://localhost//myscript.php

Más en: PHP Cron Job: Cómo ejecutar un script PHP usando Crontab en Linux

información relacionada