Foros del Web » Programando para Internet » PHP »

ejecutar cron con php

Estas en el tema de ejecutar cron con php en el foro de PHP en Foros del Web. hola amigos tengo un archivo que ejecutado desde el navegador realiza las siguientes funciones 1 realiza la conexion con la base datos 2 define timezone ...
  #1 (permalink)  
Antiguo 27/08/2018, 13:06
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 1 mes
Puntos: 10
ejecutar cron con php

hola amigos tengo un archivo que ejecutado desde el navegador realiza las siguientes funciones

1 realiza la conexion con la base datos
2 define timezone
3 realiza consulta condicionada
4 compara datos relacionados con otras tablas
5 si todo esta ok
certifica que el time y date registrados u programado e base datos sean identicos al timezone y entonces sigue con la publicacion en ese caso muro de facebook.
6 si todo fue ok elimina de base datos la info programada.

cuando lo pongo en cron no me ejecuta
ya consulte con mi hosting se hiso pruebas con el comando con un testmail y funciono... pero al script no el archivo tiene permiso 766

FUNCIONA SI LO EJECUTO DESDE EL NAVEGADOR PERO NO DEL CRON

/opt/alt/php56/usr/bin/php/home/socia/public_html/social_click/fb/facebook/social_ejecute_crom.php

Dejo mi codigo se alguiem sabe de eso..

Código PHP:

  
include('connect.php');
                    
        
date_default_timezone_set ('America/Santiago');
         
$date date('Y-m-d');
          
$time = (strftime("%H:%M"));


  
$social_cron_result $db->prepare("SELECT * FROM social_cron_insta WHERE social_id = 'facebook'");
             
$social_cron_result->execute();
               
$social_cron_row$social_cron_result->fetch();
                 
$social_id_admin $social_cron_row['social_id_admin'];
            
                     
$social_admin_result $db->prepare("SELECT * FROM social_admin WHERE id_social_admin = :social_id_admin");
                       
$social_admin_result->execute(array(':social_id_admin'=>$social_id_admin));
                         
$social_admin_row$social_admin_result->fetch();
                         
                           
$id_social_admin $social_admin_row['id_social_admin'];
                           
                        
                            
$social_message_result $db->prepare("SELECT * FROM social_message WHERE social_id_admin = :id_social_admin");
                            
$social_message_result->execute(array(':id_social_admin'=>$id_social_admin));
                            
$social_message_row $social_message_result->fetch();
                            
                            
$social_profile_result $db->prepare("SELECT * FROM social_profile WHERE social_id_admin_profile = :id_social_admin");
                            
$social_profile_result->execute(array(':id_social_admin'=>$id_social_admin));
                            
$social_profile_row $social_profile_result->fetch();
                                     
               if((
$social_cron_row['social_date'] === $date) && ($social_cron_row['social_time'] === $time)){

require  
'Facebook/autoload.php';
require  
'Facebook/Facebook.php';

$fb = new FacebookFacebook([
  
'app_id' => $social_profile_row['social_id_app_facebook'],
  
'app_secret' => $social_profile_row['social_key_app_facebook'],
  
'default_graph_version' => 'v2.2',
  ]);

 
$linkData = [
  
'link' => $social_message_row['social_link'],
  
'message' => $social_message_row['social_message_face'],
  
'caption' => $social_message_row['social_title'],
  ];

try {
  
// Returns a `Facebook\FacebookResponse` object
  
$response $fb->post('/me/feed'$linkData'aqui va mi token pero lo saque para el ejemplo');
} catch(
FacebookExceptionsFacebookResponseException $e) {
  echo 
'Graph returned an error: ' $e->getMessage();
  exit;
} catch(
FacebookExceptionsFacebookSDKException $e) {
  echo 
'Facebook SDK returned an error: ' $e->getMessage();
  exit;
}

$graphNode $response->getGraphNode();
 }
 
 if((
$social_cron_row['social_date'] <= $date) && ($social_cron_row['social_time'] <= $time)){
                
                   
$id_social_cron =  $social_cron_row['id_social_cron'];
                    
                    
$sql "DELETE FROM social_cron_insta WHERE id_social_cron = :id_social_cron";
                    
$stmt $db->prepare($sql);
                    
$stmt->bindParam(':id_social_cron'$id_social_cronPDO::PARAM_INT);   
                    
$stmt->execute();
                    } 
  #2 (permalink)  
Antiguo 27/08/2018, 16:58
 
Fecha de Ingreso: abril-2006
Mensajes: 152
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: ejecutar cron con php

puedo suponer que es por causa de include('connect.php'); ya que le estas dando una RUTA relativa y no una Absoluta,

si el archivo "connect.php" esta en el mismo directorio que tu script entonces solo cambialo por

require(__DIR__ . '/connect.php'); y tambien los permisos, es muy importante, que los tenga correctamente
  #3 (permalink)  
Antiguo 28/08/2018, 10:42
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 1 mes
Puntos: 10
Respuesta: ejecutar cron con php

hice los cambios pero sigue igual.. si lo llamo por navegador fonciona pero por cron no.
  #4 (permalink)  
Antiguo 28/08/2018, 11:19
 
Fecha de Ingreso: abril-2006
Mensajes: 152
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: ejecutar cron con php

Cita:
Iniciado por saraivaruas Ver Mensaje
hice los cambios pero sigue igual.. si lo llamo por navegador fonciona pero por cron no.
solo te queda la opcuion de hacer debugger, a la antigua, como un ciego, tienes que crear un archivo al FINAL del script, y ejecutas cron, si ves que tu script no crea ese archivo, es indicio de que algo no va bien con el PHP en modo CLI, recuerda que PHP tiene 2 modos el de MODULO APACHE o WEB y el CLI, el que vees con el navegador, es modo WEB, y lo que hace cron , usa el Modo CLI, los servidores generalmente tienen ambos configurados correctamente, pero existe casos en que en el modo CLI, no esta habilitado las extensiones de Base de datos, CURL y otros,

bueno continuando con el debugger, si no crea el archivo, prueba luego, subiendo la parte que crea el archivo a un proceso anterior de tu script php, es como subir la escalera, vas subiendo y probando, en que punto se crea, y cuando halles el punto , entonces ya podras tener una idea de que puede estar fallando
  #5 (permalink)  
Antiguo 31/08/2018, 13:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.875
Antigüedad: 10 años, 3 meses
Puntos: 2152
Respuesta: ejecutar cron con php

Falta un espacio entre .../php y /home...
__________________
- León, Guanajuato
- GV-Foto



La zona horaria es GMT -6. Ahora son las 05:52.