aide prestashop PhenixSuite Help
    • Catégories
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Recherche
    • S'inscrire
    • Se connecter

    Pourquoi le module cronJob ne fonctionne-t-il pas avec les mutus OVH ?

    Planifier Épinglé Verrouillé Déplacé Tutoriels
    systèmeadministration
    16 Messages 6 Publieurs 1.4k Vues
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • J Hors-ligne
      jcuenin legacy
      dernière édition par

      Merci beaucoup pour cette solution, cela m'a aidé a corriger un problème de synchronisation du module amazon market place sur ovh.

      1 réponse Dernière réponse Répondre Citer 0
      • B Hors-ligne
        Baron1 legacy
        dernière édition par

        Vous pouvez utiliser tout crontab externe (comme easycron.com), qui commence les processus sur l'URL et quelques PrestaShop modules cron emplois tutoriels à https://www.easycron.com/cron-job-tutorials, espère l'aide.

        1 réponse Dernière réponse Répondre Citer 0
        • A Hors-ligne
          AMFreelance
          dernière édition par

          Bonjour,

          J'ai essayé de mettre en place ton script mais j'ai une adresse en https (Certificat Let's Enscrypt). J'ai toujours un retour en failed. Est-ce que tu peux m'aider ?

          1 réponse Dernière réponse Répondre Citer 0
          • F Hors-ligne
            Fred
            dernière édition par doekia

            Bonjour,

            Si je remplace la ligne ;
            http://www.votre_site/adminXXXX/index.php?controller=AdminCronJobs&token=a0c6f12c14a4a96b3937e7fda7182ebe

            par celle-ci : * * * * * /usr/bin/flock -n /tmp/mmo_process_import.lockfile /usr/bin/curl https://xxxxxx.fr/modules/ps_mmoconnector/processImportCron.php >> /home/xxxxxx/www/modules/ps_mmoconnector/logs/process_import_cron.log
            7 */1 * * * /usr/bin/flock -n /tmp/mmo_cache_clean.lockfile /home/xxxxxx/www/modules/ps_mmoconnector/cache_clean >> /home/xxxxxx/www/modules/ps_mmoconnector/logs/cache_clean.log
            15 0 * * * /usr/bin/flock -n /tmp/mmo_update_product.lockfile /usr/bin/curl https://xxxxxxxx.fr/modules/ps_mmoconnector/updateProductURLsCron.php >> /home/xxxxxxx/www/modules/ps_mmoconnector/logs/update_product_urls_cron.log

            Est-ce que ça va fonctionner ?
            Mon fournisseur me demande de lancer cette tâche ... Je suis chez OVH et un peu perdu...
            Merci pour toute aide

            EDIT modération: suppression des urls réèlles

            1 réponse Dernière réponse Répondre Citer 0
            • doekiaD Hors-ligne
              doekia
              dernière édition par

              Le module cronjob est un module web, par construction il est seulement capable d'exécuter des requêtes web avec les contraintes liées.

              Ce que votre interlocuteur vous demande est d'exécuter une commande système.
              Cette commande fait d'ailleurs appel à la commande flock qui n'est pas sûr d'être permise dans un univers mutualisé.
              De plus votre commande me fait peur, elle s'execute via le web (donc n'importe qui peut la lancer) mais ne contient pas de protection pour s'assurer que vous êtes seul à pouvoir l'exécuter.

              Afin d'éviter qu'un petit malin lance une attaque de type DOS sur votre site, j'ai modifié votre url
              Faire une demande urgente au développeur du module pour mettre en place un minimum de sécurité.

              Vous avez peut-être une petite chance de faire fonctionner votre tâche, mais seulement via le vrai cron, donc pas au travers du module cronjobs, mais via les tâches planifié de OVH

              https://store.enter-solutions.com modules, support et assistance.

              Je précise que je n'ai pas fait ni Paco-Rabane, ni Poudlard 2ème langue - je ne suis ni devin, ni magicien.
              Fournissez un maximum d'information dans vos questions, version exacte du coeur et de vos modules, si besoin un peu d'histoire sur votre shop et vos recherches, les modules tiers installés, ...

              Si mon intervention vous a aidé, n'hésitez pas à me remercier: https://ko-fi.com/A153227G

              F 1 réponse Dernière réponse Répondre Citer 0
              • F Hors-ligne
                Fred @doekia
                dernière édition par

                @doekia Merci pour tout

                1 réponse Dernière réponse Répondre Citer 0
                • F Hors-ligne
                  Fred @eolia
                  dernière édition par

                  @eolia J'ai testé ce code, ça donne : Parse error: syntax error, unexpected end of file in CODE on line 42
                  Errors parsing CODE
                  c'est normal ?
                  (un copier coller sur le site https://fr.piliapp.com/php-syntax-check/ )

                  1 réponse Dernière réponse Répondre Citer 0
                  • F Hors-ligne
                    Fred
                    dernière édition par doekia

                    Par contre, celui ne révèle aucune erreur de syntaxe :

                    <?php

                    /*
                    ** Changez cette variable en true ou false pour que le cron
                    ** affiche quelque chose - ceci apparaît dans les log de la
                    ** console
                    */
                    $verbose = true;

                    /*

                    ** sur l'écran de configuration du module cronjobs
                    ** après avoir activé le mode avancé
                    */
                    $cronjob_url = <<< EOT
                    https://xxxxx.fr/admin1234/index.php?controller=AdminCronJobs&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
                    EOT;

                    /**************************************
                    ** Ne rien modifier après cette ligne **
                    ***************************************/
                    error_reporting(E_ALL);
                    $break_line = (php_sapi_name() == "cli") ? PHP_EOL : '<br/>';
                    $output = $verbose ? $break_line.'Cron Report of '.date('c').$break_line.$break_line : '';

                    $cronjob_url = trim($cronjob_url);
                    $ch = curl_init($cronjob_url);
                    curl_setopt($ch, CURLOPT_URL, $cronjob_url);
                    curl_setopt($ch, CURLOPT_HEADER, 0);
                    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

                    $data = curl_exec($ch);

                    if ($verbose) {
                    if($data)
                    $output .= 'Ok'.$break_line.$data;
                    else
                    $output .= 'Failed';
                    }
                    curl_close($ch);

                    die($output);

                    1 réponse Dernière réponse Répondre Citer 0
                    • doekiaD Hors-ligne
                      doekia
                      dernière édition par

                      Pour la dernière fois!
                      Ne pas mettre les url exacte de ton BO et/ou de tes crons avec leurs tokens de sécurité sur un forum public

                      https://store.enter-solutions.com modules, support et assistance.

                      Je précise que je n'ai pas fait ni Paco-Rabane, ni Poudlard 2ème langue - je ne suis ni devin, ni magicien.
                      Fournissez un maximum d'information dans vos questions, version exacte du coeur et de vos modules, si besoin un peu d'histoire sur votre shop et vos recherches, les modules tiers installés, ...

                      Si mon intervention vous a aidé, n'hésitez pas à me remercier: https://ko-fi.com/A153227G

                      1 réponse Dernière réponse Répondre Citer 1
                      • R Hors-ligne
                        rp.lemaire
                        dernière édition par

                        Bonjour,
                        J'étais plein d'espoir en trouvant votre code pour créer un fichier cron.php mais ça ne marche pas pour moi ... j'ai dû raté qqchose !
                        Mon site est en PS 1.6.1.17
                        serveur : OVH mutualisé

                        j'ai créé le fichier, créé la tâche cron chez OVH avec la CMD ./www/adminXXX/cron.php (j'ai même testé de mettre le fichier cron directement à la racine www/) mais rien ne se passe.
                        Ni qd je colle directement le chemin du fichier dans la barre d'adresse .... https://ascenseurvegetal.com/adminXXXX/cron.php (ou directement à la racine www)

                        Dois-je changer le code pour PS 1.6 ? ou la version php (5.6 sur le serveur...) ?

                        Merci d'avance pour vos lumières

                        Régis L

                        eoliaE 1 réponse Dernière réponse Répondre Citer 0
                        • eoliaE Hors-ligne
                          eolia @rp.lemaire
                          dernière édition par

                          @rp-lemaire Quand vous le testez depuis le navigateur, quel est la réponse ? Page blanche ?

                          Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                          1 réponse Dernière réponse Répondre Citer 0
                          • R Hors-ligne
                            rp.lemaire
                            dernière édition par

                            Bonsoir,
                            Oui, c'est bien ça ... (je n'ai pas activé les messages d'erreur, et je ne sais pas si ça changerais qqch ...)
                            Par contre j'ai fait un test avec un fichier du même nom, mais qui m'envoie un mail (+ simple à coder ...). ça marche si je le colle à la racine www/ : https://ascenseurvegetal.com/cron.php (pas si je le colle dans /adminXXX/ ...
                            J'ai fait un copié collé du code ci-dessus, je n'ai pas oublié une ligne lors de la sélection ...
                            J'ai collé l'URL du cron de Prestashop dans croono.com : ça marche ...

                            Je ne suis vraiment pas capable de juger mais il me semble que cela vient du code ... ;-(
                            il doit y avoir qqch d'incompatible avec ma config

                            RL

                            1 réponse Dernière réponse Répondre Citer 0
                            • S Hors-ligne
                              spip93
                              dernière édition par

                              Bonjour Eolia,

                              Un grand merci pour ce tuto et surtout le code PHP.
                              Par contre, attention à propos de ce code, il y a des espaces/tabulations à chaque ligne => erreur de syntaxe quand on le colle dans un éditeur de texte comme PHPDesigner. Il faut les supprimer pour qu'il n'y ait plus d'erreur.

                              Je voulais savoir : j'ai plusieurs taches à exécuter avec des liens cibles/URL différents et à des fréquences différentes. Du coup, j'ai créé plusieurs fichiers PHP (en reprenant à chaque fois votre code PHP) et je les ai tous mis (sur mon FTP) dans un dossier appelé taches_cron
                              Ensuite, je suis allé dans l'Espace client OVH > Hébergement > [Nom du site] onglet Plus + > Taches planifiées - Cron et j'ai créé une tache cron par fichier dans mon dossier taches_cron avec le chemin www/taches_cron/[nom_du_fichier].php
                              Est-ce que cela va fonctionner, ou faut-il obligatoirement mettre le(s) fichier(s) PHP des tâches CRON dans le dossier admin de ma boutique ?

                              Autre question (là ça n'est pas le cas mais) : si on a plusieurs taches cron qui s'exécutent à la même fréquence mais avec des liens cible/URL différents, est-ce qu'on doit créer autant de fichier PHP que de tâches cron ou est-ce qu'on peut mettre plusieurs liens cible/URL à la suite dans le fichier PHP ?
                              Exemple :

                              $cronjob_url = <<< EOT
                              http://www.votre_site/adminXXXX/fichier1.php?controller=AdminCronJobs&token=a0c6f12c14a4a96b3937e7fda7182ebe
                              http://www.votre_site/adminXXXX/fichier2.php?controller=AdminCronJobs&token=a0c6f12c14a4a96b3937e7fda7182ebe
                              http://www.votre_site/adminXXXX/fichier3.php?controller=AdminCronJobs&token=a0c6f12c14a4a96b3937e7fda7182ebe
                              EOT;
                              

                              D'avance merci pour votre réponse.
                              Bonne journée 😉

                              doekiaD 1 réponse Dernière réponse Répondre Citer 0
                              • doekiaD Hors-ligne
                                doekia @spip93
                                dernière édition par

                                @spip93
                                Le topic a pour but de pouvoir exécuter le module cronjobs de prestashop.
                                Une fois ce dernier opérationnel il est habituel d'alors configurer les taches planifiées via ce module.

                                https://store.enter-solutions.com modules, support et assistance.

                                Je précise que je n'ai pas fait ni Paco-Rabane, ni Poudlard 2ème langue - je ne suis ni devin, ni magicien.
                                Fournissez un maximum d'information dans vos questions, version exacte du coeur et de vos modules, si besoin un peu d'histoire sur votre shop et vos recherches, les modules tiers installés, ...

                                Si mon intervention vous a aidé, n'hésitez pas à me remercier: https://ko-fi.com/A153227G

                                1 réponse Dernière réponse Répondre Citer 0
                                • V Hors-ligne
                                  victoria
                                  dernière édition par

                                  Bonsoir, je reviens vers vous pour remonter ce sujet car je n'arrive pas à faire marcher les taches crons malgré votre codage.

                                  Je suis en prestashop 1.7 avec un OVH mutualisé.
                                  Je veux faire tourner une tâche cron d'un module de génération de relances via messenger. J'ai donc mis la tache cron indiquée dans ce module dans le module cronjob. Et j'ai copié votre script dans un fichier cron.php que j'ai mis à la racine de mon fichier admin dans le www (c'est-à-dire : www/adminxx/cron.php). J'ai pris soin de mettre la tache cron indiquée dans cronjob dans ce cron.php.

                                  Je vous recolle le texte indiqué dans cron.php peut-être ai-je fait une erreur ?
                                  J'ai levé mon nom de domaine et les clés en remplaçant par xxx

                                  <?php

                                  /*
                                  ** Changez cette variable en true ou false pour que le cron
                                  ** affiche quelque chose - ceci apparaît dans les log de la
                                  ** console
                                  */
                                  $verbose = true;

                                  /*

                                  ** sur l'écran de configuration du module cronjobs
                                  ** après avoir activé le mode avancé
                                  */
                                  $cronjob_url = <<< EOT
                                  https://www.monnomdomaine.fr/adminxxx/index.php?controller=AdminCronJobs&token=xxxx
                                  EOT;

                                  /**************************************
                                  ** Ne rien modifier après cette ligne **
                                  ***************************************/
                                  error_reporting(E_ALL);
                                  $break_line = (php_sapi_name() == "cli") ? PHP_EOL : '<br/>';
                                  $output = $verbose ? $break_line.'Cron Report of '.date('c').$break_line.$break_line : '';

                                  $cronjob_url = trim($cronjob_url);
                                  $ch = curl_init($cronjob_url);
                                  curl_setopt($ch, CURLOPT_URL, $cronjob_url);
                                  curl_setopt($ch, CURLOPT_HEADER, 0);
                                  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

                                  $data = curl_exec($ch);

                                  if ($verbose) {
                                  if($data)
                                  $output .= 'Ok'.$break_line.$data;
                                  else
                                  $output .= 'Failed';
                                  }
                                  curl_close($ch);

                                  die($output);

                                  Sur ovh, j'ai crée le lien pour aller chercher ce cron.php

                                  Quand je le teste avec www.monnodomaine.fr/adminxxx/cron.php j'ai le resultat suivant qui semble indiquer que cela fonctionne :

                                  cronjobs_prestashop
                                  Cron Report of 2018-08-20T19:17:37+02:00

                                  Ok
                                  1

                                  Quand je vais dans cronjob, cela m'indique que la requete a tourné (peut etre parce que j'ai testé manuellement comme indiqué ci-dessus). Pour autant les fameux messages par messenger ne sont jamais envoyés.

                                  Quelqu'un pourrait-il regarder pour vérifier si j'ai oublié quelque chose ou mal retranscrit une étape ?

                                  Sinon y a t il une autre moyen ? J'ai vu qu'il y a un module crontab. est-il plus efficace ?

                                  Je vous remercie par avance pour l'aide que vous pourrez m'apporter.

                                  Bonne soirée

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Premier message
                                    Dernier message
                                  bug
                                  26 sujets
                                  1.6
                                  24 sujets
                                  front-office
                                  11 sujets
                                  1.5
                                  8 sujets
                                  1.7
                                  5 sujets
                                  système
                                  4 sujets
                                  administration
                                  3 sujets
                                  hack
                                  3 sujets
                                  module
                                  3 sujets
                                  performance
                                  3 sujets
                                  smtp
                                  3 sujets
                                  transporteurs
                                  3 sujets
                                  dashboard
                                  2 sujets
                                  https
                                  2 sujets
                                  paypal
                                  2 sujets
                                  promotions
                                  2 sujets