Jump to content

Script En Tache Cron Ok Mais Plus En Ssl


Recommended Posts

Bonjour

J’ai créé un  script qui exporte les commandes du jour dans un fichier csv dans un répertoire de mon propre serveur. Il est exécuté par une tache cron quotidiennement. Tout fonctionnait à merveille jusqu’à ce que le mode SSL soit activé sur Prestashop

Depuis, le script crash au moment où la commande suivante est exécutée : $resultat=Db::getInstance()->ExecuteS($sql);

($sql est une requête de SELECT)

Lorsque le script est appelé manuellement directement dans la barre d’adresse, ca fonctionne correctement (que ce soit  en http ou  https), mais pas lorsque c’est exécuté via la tache cron.

Pour couronner le tout, je ne reçois pas les logs par emails des taches cron exécutées chez OVH, donc le debuggage est très compliqué (pour ne pas dire que je dois le faire à l’aveuglette – je m’envoie un mail après chaque commande pour voir ou ça crash…- mais c’est un autre problème)

lorsque le SSL est désactivé, le script fonctionne à nouveau en tache cron...

Y-a-t-il un paramétrage ou quelque chose à prendre en compte lorsque prestashop est configuré en mode SSL ? Les déclarations de variables ou de chemins d’accès de fichiers doivent-elles être déclarées autrement lorsqu’on est en SSL ? quelle est l’incidence de l’exécution en tache cron d’un script pour SSL ?

merci pour votre aide, car la je sèche....

 

(je suis sur PS 1.6.0.8 hébergé chez OVH sur serveur performance 3 avec certificat SSL et base sql privée)

Link to comment
Share on other sites

  • 2 months later...

alors oui j'ai réglé mon problème, en fait c'est un comportement lié à prestashop, pour le contrer, j'ai rajouté cette ligne au début de mon fichier exécuté par la tache cron :

 

$_SERVER['REQUEST_METHOD'] = 'POST';

 

explications: cela permet d’éviter une redirection dans le batch du au frontcontroller:

 

// If we call a SSL controller without SSL or a non SSL controller with SSL, we redirect with the right protocol
if (Configuration::get('PS_SSL_ENABLED') && $_SERVER['REQUEST_METHOD'] != 'POST' && $this->ssl != Tools::usingSecureMode())
{
header('HTTP/1.1 301 Moved Permanently');
header('Cache-Control: no-cache');
if ($this->ssl)
header('Location: '.Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']);
else
header('Location: '.Tools::getShopDomain(true).$_SERVER['REQUEST_URI']);
exit();
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...