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

Hello tout le monde,

Ce matin je voulais migrer les donner de mon ancienne seedbox vers la nouvelle tout en gardant mes torrents.
Du coup j’ai tout rsync, mais pour remettre mes fichiers en seed il me fallait les .torrent.

Sur chaque torrent on peut faire : « clique droit -> télécharger le(s) torrent(s) »

Ça aurais était super fastidieux que de le faire pour chaque torrent, alors du coup j’ai essayé avec plusieurs de sélectionné, mais je rencontré l’erreur suivante :

php module "zip" not installed

Pour solutionné le problème :

apt install php7.2-zip && service php7.2-fpm restart

Je précise qu'on rencontre le pb uniquement avec les anciennes install de bonobox, car ma nouvelle seedbox elle a était installer avec la nouvelle version du script et php-zip semble présent :

apt install php7.3-zip
Reading package lists... Done
Building dependency tree
Reading state information... Done
php7.3-zip is already the newest version (7.3.3-1+0~20190307202245.32+stretch~1.gbp32ebb2).

Wagner Merci pour les infos, malheureusement, LVM n'a pas fonctionné, (impossible de "umount /home"...) du coup je me suis servi de quotatool, on a tous la bonne limite, mais on ne le voit pas dans rutorrent, alors ils devront faire gaffe par eux-même...

Wagner Juste pour précision, "/boot" et "SWAP" sont inutiles sur les dédiés ?? t'es sûr de ça ?

/swap est inutile vu les quantités de RAM. /boot en revanche est nécessaire.

@BXT je déconseille de mettre du SWAP [...]

Ce court extrait provient de ce message (le n°23 du topic n°6040).

De rien et bien entendu @hazraael que j'en suis certain. Prendre le temps de relire car comme je le disais :

  • l'interface est assez limitée ainsi que trompeuse (voici un exemple via le topic n°5655)
  • je possède le mien depuis plusieurs années.

Par contre, il faut bien comprendre une chose (ou le sous-entendu) : cela varie notamment en fonction du serveur (et éventuellement d'autres facteurs). Pour être plus précis, le mien dispose au minimum de 16 Go de RAM. De facto, je te confirme que celle du SWAP devient totalement inutile. En plus, je ne suis pas le seul à partager cette opinion.

Le raid m'apportera un gain ? Concrètement en-ai je vraiment besoin ? Dans mon cas, la réponse est non. Alors par habitude, j'efface celle du /boot car elle me servira strictement à rien.

Et puis, lorsque l'interface pose un problème alors je passe par le mode rescue car c'est plus simple. Cela me permet de réinstaller l'OS sans perdre mes données et le partitionnement correspond à mes exigences.

PS : Certes ce sont des explications assez basique mais je crois que cela suffira. Autrement, je le crains cela pourrait devenir assez complexe...
Au fait, tu trouvera les topic (pour les 3 ou 4 principaux prestataires) si dans ton cas, la réponse est différente.

un mois plus tard

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.