Después de varios intentos diferentes, he creado una tarea cron que ejecuta el siguiente archivo cada minuto; este archivo se llama cron.php:

    <?php
      echo file_get_contents('http://website.com/search/all');
    ?>

buscar es mi controlador, todo es mi función.

Al acceder a este archivo a través de un terminal así, el archivo funciona correctamente y se espera:

 php /srv/users/serverpilot/apps/websitename/public/cron.php

Sin embargo, tan pronto como lo programo dentro de crontab -e , no se ejecuta correctamente (si es que lo hace) y no muestra ningún error. Este es el contenido de crontab -e :

* * * * * php /srv/users/serverpilot/apps/brickmulesite/public/cron.php

Cuando miro a través de mi registro cron ( grep cron / var / log / syslog ) esto es lo que veo:

Jan 27 13:55:01 websitename CRON[22231]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 13:56:01 websitename CRON[22237]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 13:57:01 websitename CRON[22241]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 13:58:01 websitename CRON[22247]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 13:59:01 websitename CRON[22260]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:00:01 websitename CRON[22266]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:01:01 websitename CRON[22270]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:02:01 websitename CRON[22274]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:03:02 websitename CRON[22278]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:04:01 websitename CRON[22363]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:05:01 websitename CRON[22367]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:06:01 websitename CRON[22372]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:07:01 websitename CRON[22376]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:08:01 websitename CRON[22383]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)

Parece que el cron se está ejecutando pero no está ejecutando el código del archivo. ¿Qué me estoy perdiendo?

Sé que debería poder ejecutarlo usando lo siguiente, pero eso tampoco funcionó, así que quería simplificar el problema:

php -f /srv/users/serverpilot/apps/websitename/public/index.php search all
0
David 27 ene. 2016 a las 22:14

3 respuestas

La mejor respuesta

[RESUELTO]

Notará que estoy usando ServerPilot como parte de mi sitio web. Su plataforma me permite elegir qué versión de php debe ejecutar mi aplicación web. De todas formas...

La solución se encontró en este sitio web: https://serverpilot.io/community/articles/how -to-use-the-php-cli.html

Lo que tenía que hacer era cambiar la llamada de PHP dentro del cron para que dijera:

* * * * * php5.6-sp /srv/users/serverpilot/apps/websitename/public/cron.php

Tenga en cuenta la php5.6-sp Tenga en cuenta el php5.6-sp

Imagino que esto es muy específico para los usuarios de ServerPilot.

1
David 28 ene. 2016 a las 19:07

Simplemente usa esto con curl

Curl "http://www.nameofdomain.com/controllername/functionname"

En el cuadro de texto de comando

0
Moiz Arif 28 ene. 2016 a las 22:28

Usar ruta completa como

/usr/bin/php
0
recycler 27 ene. 2016 a las 20:22