OVH Community, votre nouvel espace communautaire.

Problème sur Cron PHP 7


yopkiwi
02/06/2016, 18h40
Bonjour et merci beaucoup à Vcasse & Ovniz

Le problème est réglé, donc merci !
Pour ceux qui comme moi n'avait pas bien compris, voilà la façon de faire (regardez la différence entre le code du haut & celui-ci)
Code:
require_once (__DIR__.'/twitteroauth.php');
Également, bien mettre un CHMOD 705 pour l’exécution, mais cela m’inquiète, toute mes clés/tokens sont dans ce fichier PHP en 705... Ce n'est pas risquer ?

Merci à vous et bonne journée

vcasse
02/06/2016, 14h33
Bonjour,

Dans les crons, vous devez utiliser des chemins absolus pour les fichiers. PHP a inclus une directive permettant de simplifier cela : __DIR__.
Vous trouverez plus d'informations et d'exemples dans la documentation officielle. http://php.net/manual/fr/language.co...predefined.php

Cordialement,
Vincent

ovniz
02/06/2016, 07h35
Bonjour
Il me semble que sur les mutualisé, il faut obligatoirement indiquer le chemin réel :
donc pas : require_once('twitteroauth.php');
Mais un truc du genre : require_once('/home..../twitteroauth.php');

yopkiwi
02/06/2016, 02h26
Hello à tous,
Je posséde un hébergement performance qui n'est pas donné
Je possède un problème d’exécution dans un de mes script.
Les log m'affiche aucune erreurs (0) et l’exécution du script depuis mon navigateur se fait parfaitement.

Par contre la tache CRON, bien qu'elle effectue l'action, mon script ne se lance pas du tout.

J'ai mis à jour vers PHP 7 qui était en 5.5, essayer un CHMOD en X et 777

Mais rien à faire.

Le script se situe dans un dossier www/messcripts/script1

Je précise que j'ai un autre script, différent certes mais qui s’exécute sans problèmes

Merci d'avance

Voici le code source du script incriminé !

Code:
host = "https://api.twitter.com/1.1/";

$tweet = new TwitterOAuth($c_key, $c_secret, $a_token, $a_secret);

$f_contents = file("tweets.txt"); 
$line = $f_contents[rand(0, count($f_contents) - 1)];

if(strlen($line) <= 140) {
	$status = $tweet->post('statuses/update', array('status' => $line));
}

#print_r($status);

?>

Et voici le code d'un de mes scripts qui s’exécute parfaitement :


Code:
setTimeouts(10, 15);


// Enchaînement d'actions

$theSearch = [
'q' => '@tw',
'lang' => 'fr',
'count' => 2
];
$results = $connection->get('search/tweets', $theSearch);
foreach($results->statuses as $status) {
           $connection->post('statuses/retweet', [
                     'id' => $status->id_str
           ]);
        
}
?>