• Archive
  • [Discussion] Installer ruTorrent sur Debian 9 {nginx & php-fpm}

bonjour
je viens de passer ma seedbox sur php7.3 et apres qq peripeties rtorrent remarche de nouveau
seul hic les plugins:
_task: Le plug-in ne fonctionnera pas. Le serveur web ne peut pas accéder au(x) programme(s) externe(s). (php).
[17.04.2019 15:17:30] _task: Le plug-in ne fonctionnera pas. Le serveur web ne peut pas accéder au(x) programme(s) externe(s). (pgrep).
[17.04.2019 15:17:30] _cloudflare: Le plug-in ne fonctionnera pas. Le serveur web ne peut pas accéder au(x) programme(s) externe(s). (python).
[17.04.2019 15:17:30] create: Le plugin ne fonctionnera pas. Il est dépendant d'autre(s) plugin(s). _task
[17.04.2019 15:17:30] unpack: Le plugin ne fonctionnera pas. Il est dépendant d'autre(s) plugin(s). _task
[17.04.2019 15:17:30] mediainfo: Le plugin ne fonctionnera pas. Il est dépendant d'autre(s) plugin(s). _task

il doit y avoir une histoire de droit
en reprenant le tuto je ne vois pas ou ..
si qq un a deja eu ce probleme
d'avance merci

Pour l'erreur python, tu installes ça si pas déjà fait:

apt-get install python-pip

suivi de ça

pip install cfscrape

Et tu ajoutes ça à la conf de filemanager:

nano /var/www/rutorrent/plugins/filemanager/conf.php
$pathToExternals['php'] = '/usr/bin/php7.3';
$pathToExternals['pgrep'] = '/usr/bin/pgrep';
$pathToExternals['python'] = '/usr/bin/python2.7';

Tu peux si tu si tu préfères coller la conf pour chaque user (sur debian 8 il préfère, je sais pas pourquoi)

nano /var/www/rutorrent/conf/users/<username>/config.php

toujours:

$pathToExternals['php'] = '/usr/bin/php7.3';
$pathToExternals['pgrep'] = '/usr/bin/pgrep';
$pathToExternals['python'] = '/usr/bin/python2.7';

Ça devrait le faire, enfin...............
Ça vient de la nouvelle version de ruTorent 3.9
Ex.

    merci ex_rat
    mais j'avais bien rajouté ces lignes suite a qq posts ici et la concernant rutorrent 3.9 (sous debian9)

    j'ai meme fait chmod 755 sur /usr/bin/pgrep et python mais pas encore php 🙂
    sans difference pour autant
    bien sur j'ai relancé nginx et php et rtorrent apres

      Alors du coup je sais pas trop 🙁
      Je passe le script auto juste avec ça moi

      zorrax
      Hello, les fichiers exécutables comme "pgrep" ou "php" doivent avoir les droits "644" ( comme n'importe quels autres fichiers ) et aussi avoir l'attribut "+x" ( avec chmod +x /chemin/fichier ) tout simplement.

      Pour savoir le chemin des fichiers exécutables, on peut utiliser la commande whereis nom_du_fichier

      Inutile de modifier le fichier "conf.php" du plugin 'filemanager', tu n'as aucun problème avec ce plugin.

      Perso, au lieu de rajouter des lignes au fichier '/var/www/rutorrent/conf/users/<username>/config.php', modifie le fichier "conf.php" des plugins '_task' et '_cloudflare' pour y mettre respectivement le bon chemin de "pgrep" et "python".

      Après, le plugin '_task' semble aussi avoir un souci pour trouver l'exécutable "php" donc, pour ce cas-ci, il faut mieux rajouter cette ligne dans le fichier '/var/www/rutorrent/conf/users/<username>/config.php' :

      $pathToExternals['php'] = '/chemin/vers/ton/php';

      Voilà 🙂

      EDIT: Changement basé sur le tuto ^^

        il n'y a pas de soucis avec filemanager mais tu obtiens le même résultat pour les chemins en éditant conf.php à la suite de:

        // set with fullpath to binary or leave empty
        $pathToExternals['rar'] = '/usr/bin/rar';
        $pathToExternals['zip'] = '/usr/bin/zip';
        $pathToExternals['unzip'] = '/usr/bin/unzip';
        $pathToExternals['tar'] = '/bin/tar';
        $pathToExternals['gzip'] = '/bin/gzip';
        $pathToExternals['bzip2'] = '/bin/bzip2';
        $pathToExternals['php'] = 'usr/bin/php7.3';
        $pathToExternals['pgrep'] = 'usr/bin/pgrep';
        $pathToExternals['python2.7'] = 'usr/bin/python2.7';
        

        Pour le script, je préfère config.php:

        <?php
        $pathToExternals = array(
            "curl"  => '/usr/bin/curl',
            "stat"  => '/usr/bin/stat',
            "php"    => '/usr/bin/php7.3',
            "pgrep"  => '/usr/bin/pgrep',
            "python" => '/usr/bin/python2.7'
            );
        $topDirectory = '/home/exrat';
        $scgi_port = 5001;
        $scgi_host = '127.0.0.1';
        $XMLRPCMountPoint = '/EXRAT';
        

        Salut @ex_rat et merci pour le tuto.

        J'ai déjà une seedbox mais là je migre de serveur et passe en Debian 9.
        J'utilise déjà le même workflow basé sur le tuto de Debian 9, mais problème : avec un seul dossier torrent, tout se mélange à l'arrivée dans Plex, et la séparation des bibliothèques par genre (film, série, etc) n'est pas possible.

        J'ai déjà lu pas mal de trucs, donc je sais que l'idée c'est de faire plusieurs dossiers d'arrivée et de faire des liens vers les dossiers surveillé par Plex, et globalement je vois deux approches, mais pour chacune quelque-chose ne va pas, je comprends pas. Je m'explique...

        Approche 1 : Filebot
        1 seul dossier watch
        plusieurs dossiers de destination torrent : Films/Series/Musique par exemple
        plusieurs dossiers pour les liens Plex : Films/Series/Musique par exemple
        Filebot se lance à la fin d'un DL, choppe les infos sur des API (imDB etc) et crée des liens vers les sous-dossiers Plex en fonction de ce qu'il pense que c'est.
        Problème : Filebot est devenu payant, semble poser problème sur Debian 9, et tout le monde utilise de vieilles versions basée sur le JDK8. Pas glop.

        Approche 2 : Autowatch, avec ou sans Autotools
        Plusieurs dossiers watch, un par catégorie : Films/Series/Musique par exemple
        Plusieurs dossier torrent, un par catégorie : Films/Series/Musique par exemple
        En fonction du dossier watch où je dépose mon torrent, il sera plaçé dans le bon dossier de destination
        Problème : si je veux juste drag&drop des torrent, ou encore que je veux utiliser un module dans mon browser pour "aspirer" les torrents vers ma seedbox automatiquement, comment je fais pour lui dire à partir de quel dossier watch je le charge sans me faire chier? La seule solution que je vois à l'heure actuelle c'est d'y aller "à la main" et de faire "Ajouter un torrent", choisir un répertoire... bref hyper chiant. Niveau module browser j'arrive pas non plus à mettre en place plusieurs watch. L'idée ce serait qu'il me demande de choisir mon répertoire en fait.

        Approche 3 : Autolabel, avec ou sans autotools
        Même problèmes.

        Y a un truc que j'ai raté? Tu me conseilles quoi stp?

        Merci d'avance.

        Merci Aerya.

        Pour le download RSS j'ai bien compris, mais ma question en fait c'est comment, par exemple via ton fameux plugin, faire pour qu'il me demande un label ou un dossier watch, avec un prompt, que je choisis au moment de lancer le torrent... J'ai déjà testé pas mal de modules navigateurs dont celui que tu proposes. Certains comportent un champ multiple label ou dossier watch, mais ça n'a pas l'air de marcher...

          Johnson j'utilise l'approche 2 et j'avais utilisé une extension chrome qui permettait d'up ds des dossiers differents

          Micdu70 merci bien pour ces explications
          les chemins sont corrects mais je vais changer les droits
          car tout le reste est correct

          Salut !

          Moi j’ai fait un peut différemment.
          J’ai deux dossiers differents dans mon /var/www.
          Un upload_films, l’autre upload_series.
          Les deux sont des scripts d’upload.
          Je deplace mes .torrent dans le script php de la page upload_films, ça upload le fichier. Jusque la, ok.
          Ensuite, dans mon dossier watch, je pointe en simlink le dossier qui réceptionne le .torrent
          ex : /home/user/watch/films
          Tout est automatisé, et c’est pas trop mal. Surement un peut mal fait car j’suis pas au top, mais ça fonctionne au poil !
          https://ibb.co/s5FgvBz

          @Aerya @zorrax @CLusmi

          Alors merci, je pense que je m'approche de mon but mais c'est pas encore parfait. J'ai fait pas mal de tests.

          J'ai une install qui correspond à celle du tuto.

          Mon orga est celle-ci
          Un dossier incoming, pour dl en cours
          Un dossier watch pour surveiller les .torrent qui y arrivent et les lancer
          Un dossier torrents pour les dl terminés

          Je précise que je ne souhaite pas automatiser mes dl.

          Avec autotools, j'ai mis en place cette config là (en mode graphique)
          Activer automove en fonction du label (je prends tout avec /.*/ vers mon dossier torrents, et je coche "ajouter le label du torrent au chemin" et choisis déplacer comme type d'action
          Je me sers juste de ça. Ca fait que quand je drag&drop un torrent, je lui fous un label dans l'interface, et quand il est terminé il part au bon endroit. Par exemple torrents/Anime/monfichierterminé

          Ca marche bien sauf que j'ai besoin d'ajouter les torrent en pause, sinon j'ai pas le temps!!
          Via le module FF Torrent Control, j'arrive à envoyer mon torrent en pause puisque l'option est disponible
          Via mon rutorrent, au drag&drop, il me le démarre systématiquement. De ce que je vois dans la doc, il faut mettre load.normal au lieu de load.start, eh ben ça marche pas. Même sans les directives schedule il démarre tout seul...

          schedule2 = watch_directory,1,1,load.normal=/home/bidul/downloads/watch/.torrent
          schedule2 = untied_directory,5,5,stop_untied=/home/bidul/downloads/watch/
          .torrent

          C'est un énorme bug ou c'est moi qui déconne? Le module ça marche bien mais j'aimerais bien ne pas être dépendant de ce truc et pouvoir aussi le faire en drag&drop, par exemple sur un pc qui n'est pas à moi...

          Edit
          En fait le module FF permet aussi de définir soit un dossier watch, soit un label au clic droit.
          Je viens seulement de comprendre ou est la liste, elle apparaît au clic droit sur un torrent.
          Je crois donc que je vais rester là-dessus, ça me paraît pas mal!

          12 jours plus tard

          [ATTENTION PAVé] J'ai trouvé la cause, cf le post suivant, c'est pas indispensable de lire ce pavé.

          Salut à tous, bravo à la communauté pour la qualité du contenu et de l'entraide. Je débarque ici à contre coeur, j'aurais aimé me tirer seul de la galère. J'ai quelques années de vol en dev et admin système sous windows, par contre sous linux je rame un peu.
          J'ai pris en début de mois un dédié Online sur lequel j'ai une une debian + le script auto de ex_rat (merci pour la qualité du script, par ailleurs). J'ai essayé de la laisser aussi vanilla que possible, je me suis contenté de :

          • Installer le plugin "rumobile" qui n'a jamais voulu fonctionner. La page s'affiche, les menus et labels aussi, mais pas de contenu central. Dans la console réseau tout le XML se charge bien, dans la console pas d'erreurs, mais voilà. Bref, j'ai abandonné, ce n'était pas bloquant.
          • Mettre en place un certificat sur le ssh de mon compte principal pour me connecter automatiquement depuis mes machines locales.
          • Sur mon premier compte rutorrent j'ai configuré le plugin "automachin" pour copier les fichiers dans un dossier une fois téléchargés (pas bien méchant).

          Le problème :
          J'ai deux utilisateurs rutorrent : us1 et us2. us1 ne fonctionne plus alors que us2 fonctionne. Quand je dis qu'il ne fonctionne plus, c'est assez tordu. rtorrent fonctionne parfaitement, j'y accède depuis transdroid. Du côté rutorrent , le service semble en état correct :

          `us1-rtorrent.service - LSB: Start daemon at boot time
          Loaded: loaded (/etc/init.d/us1-rtorrent; generated; vendor preset: enabled)
          Active: active (exited) since Thu 2019-05-02 15:54:05 CEST; 32min ago
          Docs: man:systemd-sysv-generator(8)
          Process: 23197 ExecStop=/etc/init.d/us1-rtorrent stop (code=exited, status=0/SUCCESS)
          Process: 23200 ExecStart=/etc/init.d/us1-rtorrent start (code=exited, status=0/SUCCESS)
          Tasks: 0 (limit: 4915)
          CGroup: /system.slice/us1-rtorrent.service

          May 02 15:54:05 serv1 systemd[1]: Starting LSB: Start daemon at boot time...
          May 02 15:54:05 serv1 us1-rtorrent[23200]: Starting rtorrent...
          May 02 15:54:05 serv1 su[23203]: Successful su for us1 by root
          May 02 15:54:05 serv1 su[23203]: + ??? root:us1
          May 02 15:54:05 serv1 su[23203]: pam_unix(su:session): session opened for user us1 by (uid=0)
          May 02 15:54:05 serv1 systemd[1]: Started LSB: Start daemon at boot time.
          `

          La page charge un moment et m'affiche le mot "téléchargement" en noir sur fond blanc. La console dev indique que toutes les ressources XML ont été chargées, j'y vois la liste des torrents, des fichiers, etc. Et pas d'erreur particulière.

          La console JS est vierge, c'en est même frustrant. J'ai rebooté le serveur plusieurs fois, testé depuis plusieurs pc, téléphone 4g, etc, toujours la même chose. j'ai comparé tous mes fichiers de paramétrage avec ceux de l'utilisateur usr2, j'ai contrôlé tous mes fichiers de config en faisant le tuto d'installation manuelle pas à pas trois fois , vérifié les chmods, les logs, et j'ai rien trouvé d'explicite. Dans le log rutorrent j'ai

          [...]rutorrent "(111: Connection refused) " [...]

          Le souci c'est que tiens pas à tout réinstaller, il y a deux sessions rtorrent bien réglées qui tournent, je suis un peu coincé. J'ai passé une dizaine d'heures dessus, je suis sec. A la rigueur je pourrais créer un nouveau user via la script et basculer ma sessions rtorrent dessus (possible via les ports SCGI?), je ne sais pas si ça a une chance de résoudre mes soucis.

          Je vous mets les logs nginx/rutorrent-error.log et nginx/rutorrent-access.log dans le post suivant.

          Merci d'avance pour votre aide.

          Bon, j'ai trouvé, je viens de reproduire exactement le bug sur un nouveau compte. C'est le paramétrage que je fais dans autotools, mais attention, ça ne plante pas immédiatement. Ensuite je télécharge un torrent lambda, et ......BAM! la page devient blanche indéfiniment. Une histoire de fou. J'ai plus qu'à trouver comment vider les paramètres autotools via le shell.

          L'emplacement du paramétrage d'autotools est là : /var/www/rutorrent/share/users/<user>/settings/autotools.dat

          Voici le paramétrage coupable :

          O:10:"rAutoTools":13:{s:4:"hash";
          s:13:"autotools.dat";
          s:12:"enable_label";
          s:1:"1";
          s:14:"label_template";
          s:5:"{DIR}";
          s:11:"enable_move";
          s:1:"1";
          s:16:"path_to_finished";
          s:21:"/home/us1/torrents/ok";
          s:19:"skip_move_for_files";
          s:0:"";
          s:11:"fileop_type";
          s:4:"Copy";
          s:12:"enable_watch";
          s:1:"0";
          s:13:"path_to_watch";
          s:18:"/home/us1/torrents";
          s:11:"watch_start";
          s:1:"0";
          s:15:"automove_filter";
          s:16:"/^(?!seed.*$).*/";
          s:7:"addName";
          s:1:"0";
          s:8:"addLabel";
          s:1:"0";
          }

          Nouvelles du front, j'ai eu beau remettre des paramètres par défaut dans autotools.bat, redémarrer user-rtorrent et nginx plusieurs fois, je ne parviens pas à remettre rutorrent en état de marche sur les deux utilisateurs impactés. Est-ce qu'il existe une méthode pour faire un reset du paramétrage utilisateur Rutorrent? Sachant que Rtorrent est toujours fonctionnel chez les deux utilisateurs. Suffit-il supprimer le contenu de :

          • /share/users/<user>/ ?
          • /share/users/<user>/settings/ ?

          Désolé de poster pour ça mais je pense qu'on est nombreux à te lire mais ne pas savoir t'aider... Du coup je suis intéressé par la solution ^^

          Salut
          Il y a eu une modif sur ruTorrent pour le plugin, je viens de mettre le script à jour

          Tu peux installer cloudscraper comme ça:

          pip install cloudscraper

          Ça devrait rentrer dans l'ordre après
          Ex.