FreshRSS : problème de Cron

Attention, cet article date de 4 ans, les informations peuvent ne plus être à jour...

Je me disais depuis quelques temps que mon flux RSS n’était plus très bien rempli…

Bon, j’ai encore 300 articles de retard (littéralement) et j’étais presque content de rattraper peu à peu mon retard ! Mais en fait non, c’était juste que mon CRON ne fonctionnait plus.

J’ai suspecté mon hébergeur (Alwaysdata) au départ, puisqu’ils ont lancé, il y a peu, un outil remplaçant le Shell pour les tâches planifiées par une interface beaucoup plus intuitive et facile d’accès avec des choix déroulants avec une interface HTML qui vient compléter le reste de leur outils administratifs maison.

Après avoir lancé la commande dans le Shell (https://ssh-[moncompte].alwaysdata.net en remplaçant [moncompe] par votre compte) histoire de vérifier si la commande fonctionnait, j’ai eu la surprise de tomber sur l’erreur suivante :

PHP Warning:  A non-numeric value encountered in /home/[moncompte]/www/[cheminFreshRSS]/lib/SimplePie/SimplePie/Parse/Date.php on line 694

Après quelques recherches il s’avère que cette erreur est apparue avec la nouvelle version de PHP 7.1.

Sous WordPress, par exemple, la librairie a été corrigée.

Pour ne plus avoir cette erreur, il faut donc appliquer le fix : remplacer la ligne

$second = round($match[6] + $match[7] / pow(10, strlen($match[7])));

par

$second = round((int)$match[6] + (int)$match[7] / pow(10, strlen($match[7])));

à la ligne 694 comme indiquée (fix ici : https://github.com/simplepie/simplepie/commit/1111dab1baced14aaf05509c41ee416c3fc6a961)

Et hop ! À vous la version 7.4 de PHP sans trop de souci !

Et mon retard de 300 articles supplémentaires au passage…


Edit du 06/04/2020 :

Finalement ça n’a résolu que partiellement mon problème, la mise à jour ne se faisait pas tout le temps.

La ligne de commande sur l’outil SSH ne m’indiquais plus d’erreur mais toujours un souci de mise à jour auto des flux.

En regardant ma version de FreshRSS j’ai vu qu’elle était en version 1.0, une version qui date… De quelques années… Et pas de mise à jour depuis sur mon serveur.

J’ai donc réinstallé FreshRSS avec la dernière version à jour et le problème semble résolu !


Du côté d’Alwaysdata, CRON n’étant plus dispo, les tâches planifiées remplacent cette fonction.

  • Type de tâche : Exécuter la commande
  • Valeur : php /home/[Votre compte]/www/[Dossier de FreshRSS]/app/actualize_script.php
  • Périodicité : Choisir selon vos habitudes.

Le reste n’est pas à modifier.

Dans FreshRSS :

Paramètres > Authentification > cocher « Autoriser le rafraîchissement anonyme des flux ».

Si la case ne se coche pas, le faire manuellement en modifiant le fichier « data > config.php » et changer la ligne :

‘allow_anonymous_refresh’ => false
en
‘allow_anonymous_refresh’ => true

15 avis sur l'article “FreshRSS : problème de Cron”

  1. Gilles dit :

    Ha je suis content d’être en 7.3.9 dans l’environnement AlwaysData ;)
    Par principe, je ne mets pas à jour PHP sur la dernière version, justement pour ce genre de souci…
    Le fix a été signalé à l’équipe FreshRSS ?

    • Lokoyote dit :

      @Gilles :

      Je n’ai pas vu que ça a été mis à jour, mais je vais voir surtout si le « fix » continue de marcher, parce que ça semble pas fonctionner tout le temps malgré le rafraîchissement demandé toutes les heures…

  2. Je ne sais pas comment fonctionne FreshRSS, mais pour ma part, j’ai mis en place le Cron sur mon propre PC : ça fait un hit sur mon serveur qui met alors à jour les flux.

    Rien n’empêche de mettre le Cron sur le serveur, mais ça permet de le déporter si c’est pas supporté.

  3. Matronix dit :

    @Lokoyote : j’ai vu tes commentaires dans mes flux mais ils sont pas là ? Tu les as retirés ?

    crontab -e

    Sur un terminal Linux.

    https://cron.help

    Si vous voulez je peux mettre en place une tâche cron pour vos rss sur mon dédié, ça ne prend aucune ressource et ça tourne h24… Ça me dérange absolument pas.

    • Lokoyote dit :

      @Matronix :

      Ha non absolument pas… Ils sont pas partis en « indésirables » par hasard ?

      Je vais regarder ça déjà, mais te prends pas la tête pour les déporter, au pire tu sais, je les actualises manuellement, ça prend 1min haha

  4. Matronix dit :

    Non non mais tes commentaires sur cette page. Mais là c’est bon ils sont revenus. Curieux.

    Non mais mon serveur fait un appel sur une page custom refreshRSS.php et après c’est ton serveur qui mouline, moi je déporte rien du tout et toi non plus. Bref si t’as besoin n’hésite pas.

  5. Obliv dit :

    Bonjour @Lokoyote, tu as trouvé une solution pour actualiser le flux chez AlwaysData ?
    J’ai bien créé la tâche php /www/app/actualize_script.php (mon freshrss est à la racine de wwww)
    Et j’ai activé « Autoriser le rafraîchissement anonyme des flux »
    Mais rien ne se passe…

  6. obliv dit :

    ah j’ai trouvé l’origine du problème, merci pour l’astuce SSH ! dans le fichier config.php du répertoire data, il fallait remplacer admin par mon nom d’utilisateur : ‘default_user’ => ‘admin’,

    • Lokoyote dit :

      @obliv :

      Haaa ! Bonne nouvelle ! \o/
      Marrant, moi j’ai ça :

      # Name of the user that has administration rights.
      	'default_user' => '_',

      Et ça marche tout de même, mais je n’ai pas installé Freshrss à l’époque par l’outil interne d’Alwaysdata mais de manière externe c’est peut-être pour ça…
      Je vais tout de même modifié cette ligne également !

      Merci pour ton retour ! ;)

  7. Johanna07 dit :

    Un grand merci à toi tu me sauves la mise

Répondre à Lokoyote Annuler la réponse

Votre adresse de messagerie ne sera pas publiée.

Possibilité d'ajouter une balise de SPOILER via la syntaxe suivante :
[spoiler] Texte à cacher [/spoiler]