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

Bonjour,
Je viens de tester le script essentiel sur un kimsufi (KS-2E) tout semble OK
Je ne suis pas rentré dans les détail encore.

Par contre quelles sont les différence entre le script normale et essentiel?
Merci et good job 🙂

    Filou Salut, tu les as sur le GitHub.
    Stolker Si tu retrouves le sujet initial des scripts tu y trouveras la réponse. C'est pas de l'humour ni une vanne, j'ai juste plus envie de chercher pour les autres.

      Aerya
      Merci, quelle est l'adresse Github à étudier ?

      Bon ben c'est bien ma chance.
      J'ai suivi pas à pas le tutoriel et à la fin quand je me log à https://62..../rutorrent, j'obtiens :

      Ce site est inaccessible
      
      62.***.**.*** n'autorise pas la connexion.
      
      Essayez les suggestions ci-dessous :
      Vérifier la connexion
      Vérifier le proxy et le pare-feu
      Vérifiez votre connexion internet.
      Vérifiez tous les cables, redémarrez votre routeur, modem ou tout autre appareil réseau utilisé.
      
      Permettre à Opera d'accéder au réseau dans les réglages de votre pare-feu ou de votre anti-virus.
      S'il est déjà répertorié en tant que programme autorisé à accéder au réseau, essayez de le supprimer de la liste, puis de le rajouter.
      
      Si vous utilisez un serveur proxy…
      Vérifiez vos réglages proxy ou contactez votre administrateur réseau pour être sûr que le serveur proxy fonctionne. Si vous ne pensez pas que vous devriez utiliser un serveur proxy : Allez dans le menu principal > Paramètres > Modifier les paramètres du proxy… > Réglages LAN et désélectionnez "Utiliser un serveur proxy pour votre LAN".

      Mon serveur est sur Online.

      Bon maintenant il s'affiche, mais avec cette erreur :

      [12.08.2017 17:47:01] Lien incorrect avec rTorrent. Vérifier qu'il est bien en cours d'exécution. Vérifier la configuration de $scgi_port et de $scgi_host dans config.php et scgi_port dans le fichier de configuration de rTorrent.

      Voici mon rtorrent.rc :

      scgi_port = 127.0.0.1:5001
      encoding_list = UTF-8
      port_range = 45000-65000
      port_random = no
      check_hash = no
      directory = /home/manon/torrents
      session = /home/manon/.session
      encryption = allow_incoming, try_outgoing, enable_retry
      schedule = watch_directory,1,1,"load.start=/home/manon/watch/*.torrent"
      schedule = untied_directory,5,5,"stop_untied=/home/manon/watch/*.torrent"
      trackers.use_udp.set = yes
      dht.mode.set = off
      protocol.pex.set = no
      min_peers = 40
      max_peers = 100
      min_peers_seed = 10
      max_peers_seed = 50
      max_uploads = 15
      execute = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php manon &}
      schedule = espace_disque_insuffisant,1,30,close_low_diskspace=500M

      Que faire ? Tout m'a l'air exact.

      De plus quand j'essaie de redémarrer nginx, j'ai aussi cette erreur :

      nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-enabled/seedbox.conf:55

      Mon seedbox.conf :

      server {
          listen 80 default_server;
          server_name _;
      
      charset utf-8;
      index index.html index.php;
      client_max_body_size 10M;
      
      access_log /var/log/nginx/rutorrent-access.log combined;
      error_log /var/log/nginx/rutorrent-error.log error;
      
      error_page 500 502 503 504 /50x.html;
      
      auth_basic "seedbox";
      auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";
      
      root /var/www;
      
      location = /50x.html {
          root /usr/share/nginx/html;
      }
      
      location = /favicon.ico {
          access_log off;
          log_not_found off;
      }
      
      location /rutorrent {
          try_files $uri $uri/ /index.html;
      }
      
      location ~ ^/rutorrent/(conf|share)/(.+)$ {
          deny all;
      }
      
      location ~ \.php$ {
          fastcgi_index index.php;
          include /etc/nginx/fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      }
      
      location ~* \.(jpg|jpeg|gif|css|png|js|map|woff|woff2|ttf|svg|eot)$ {
          expires 30d;
          access_log off;
      }
      location = /MANON {
              include scgi_params;
              scgi_pass 127.0.0.1:5001;
              auth_basic "seedbox";
              auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_manon";
          }
      
      server {
      listen 80 default_server;
      server_name _;
      
      
      charset utf-8;
      index index.html index.php;
      
      auth_basic "seedbox";
      auth_basic_user_file "/etc/nginx/passwd/password";
      
      root /var/www;
      
      location /seedbox-manager {
          try_files /seedbox-manager/$uri /seedbox-manager/index.php$is_args$args;
      }
      }
      
      location ~ \.php$ {
          fastcgi_index index.php;
          include /etc/nginx/fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      }
      }

        Wagner Il existe notamment ce topic enfin si jamais vous voulez creuser ou que cela réapparaît un jour.
        obelix1502 Que faire ? Tout m'a l'air exact.[...]

        En fait, il existe énormément de topic sur ce sujet... Alors je vais compléter (un brin) : celui-ci regroupe la plupart des pistes (~95%). Néanmoins, je n'ai pas évoqué les plugins de ruTorrent pour 2 raisons :

        • les chances sont assez faible

        • D'une part, il faut savoir que je m'en sers seulement (d'environ) un tiers. D'autre part, c'est trop complexe car il y a eu divers bugs (comme cela varie selon le plugin : _task, FileManager, httprpc, etc). Alors non je ne compte pas les rajouter à l'avenir, ni revenir là-dessus (autrement dit je souhaite passer à autre chose).

        À noter, il serait possible de le simplifier. Par exemple, nous pouvons déclarer la directive root une seule fois. C'est également vrai pour celle du charset (index, etc).
        Lorsqu'on déclare plusieurs block Server, il faut les placer à la suite (voici un exemple) :

        user www-data;
        [...]
        events
        {
        }
        http
        {
        	## Très souvent, les gens ont plutôt recours à la directive include.
        	## D'un autre point de vue, selon les personnes c'est plus compliqué de gérer plusieurs fichiers (au lieu d'un seul tel que le nginx.conf).
        	server
        	{
        		location
        		{
        		}
        	}
        	server
        	{
        		location
        		{
        		}
        	}
        }
        

        Bonsoir,
        J'arrive maintenant à la page d'accueil avec comme message : Lien incorrect avec rTorrent. Vérifier qu'il est bien en cours d'exécution
        Comme indiqué dans la faq j'ai tapé :
        su phil
        rtorrent
        et là : Error in option file: ~/.rtorrent.rc:2: SCGI already enabled.
        Merci encore pour votre aide ... :-(

        Bonsoir,

        il n'y aurait pas @Filou un doublon (variable scgi_port) ? Sinon juste un extrait devrait nous orienter vers la solution.

        ## Pour visualiser les 5 premières lignes :
        cat /home/phil/.rtorrent.rc | head -n 5

        J'ai fait une deuxième réinstallation et toujours les mêmes erreurs. 😞

        Je remercie énormément ex_rat.

        Je possède un serveur Debian 9 sur online (mise à niveau depuis le 8).
        Deux jours que je m'évertuais à installer manuellement la bête et j'avais les erreurs citées plus haut.
        Après la lecture de tout le post, je me suis seulement aperçu qu'il avait mis en ligne un nouveau script d'installation.
        Il fonctionne parfaitement. Rien à dire. Me suis logué de suite et tout était fonctionnel.
        Bravo à toi. 😆😍

        Bonsoir,
        Apres réinstallation complète et des jours et des jours d’essais, j’ai réussi enfin à télécharger mon premier torrent.
        Merci au passage pour l’aide précieuse de vos tutoriels.
        Deux choses me tarabustent encore :
        1) pourquoi deux « auth_basic_user_file »
        2) Dans les config.php de rutorrent et des utilisateurs, avez-vous documenté : » "php" => '/usr/bin/php7.0', » ??
        Merci …

        7 jours plus tard

        Bonjour à tous... je reviens vers vous pour avoir une explication sur un symptôme un peu bizarre, que j'ai rencontré ce WE pour me connecter à ruTorrent, et pour lequel j'ai mis un de temps à comprendre. Je m'explique :

        Ci-dessous, l'erreur en question :

        Lien incorrect avec rTorrent. Vérifier qu'il est bien en cours d'exécution. Vérifier la configuration de $scgi_port et de $scgi_host dans config.php et scgi_port dans le fichier de configuration de rTorrent.

        Ce message, tout le monde le connaît maintenant, et vient souvent d'un défaut d'écriture d'une ligne dans un des fichiers CONF que l'on modifie. Seulement voilà, ce n'est absolument plus le cas quand on est sous Debian 9 ! En effet, le défaut vient d'une petite information qui semble anodine, mais vachement "OBLIGATOIRE", contenue dans le fichier de configuration situé sous '/etc/nginx/sites-enabled/' : la double authentification !

        server {
        [...]
            error_page 500 502 503 504 /50x.html;
            >>> auth_basic "seedbox"; <<<<
            >>> auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd"; <<<<
            root /var/www;
        [...]
            location = /USER1 {
                include scgi_params;
                scgi_pass 127.0.0.1:5001;
                auth_basic "Welcome, User1!";
                auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_user1";
            }
        }

        Sans les 2 premières lignes 'auth_basic', on est marron et on n'accède plus à ruTorrent du tout, et l'erreur citée ci-dessus nous apparaît. Et cela, que l'on soit avec une configuration NoSSL (80) ou SSL (443). Pourtant, jusqu'à la version de Debian 8.7, je commentais ces 2 lignes et je n'avais jamais de soucis pour accéder à ruTorrent qui ne me demandait alors plus qu'une seule authentification.

        Le pb dans tout ça est que, si l'on souhaite faire un petit site web à la racine de '/var/www/', on devra alors s'identifier aussi. Et c'est pas terrible comme situation, surtout si chaque visiteur (anonyme) se retrouve le bec dans l'eau avec des identifiants qu'il ne connaît pas. Donc, pour l'instant j'ai décommenté les 2 lignes en question, et je peux à nouveau accéder à ruTorrent. Mais est-ce qu'il existe une solution pour corriger cette anomalie ? Peut-être que la configuration de NGiNX a changé depuis Debian 9 !

        Dans l'attente de vous lire.

        Bien cordialement,

        V.

          location ~ /rutorrent
          {
          	auth_basic	"Welcome, User1!";
          	auth_basic_user_file /etc/nginx/passwd/rutorrent_passwd_user1.htpasswd;
          	## Il n'est pas nécessaire de mettre des guillemets (dans le chemin mais l'erreur ne doit pas venir de là. What if ?)... 
          	## Une autre solution existe grâce à cette ligne : 'satisfy any;'.
          	## Pour obtenir plus de détails : http://nginx.org/en/docs/http/ngx_http_core_module.html#satisfy
          }
          

          Bonjour,

          non il n'y a eu aucun changement @virgo77 (et c'est vrai quelque soit la version de Debian). Cet exemple le démontre très bien car normalement, il n'y a (ou aura) qu'une seule demande (d'identification et nulle part ailleurs).
          D'autant plus, cela fait des années que j'ai des commentaires. Alors non je n'ai pas rencontré cette erreur depuis très très très longtemps.
          D'un autre point de vue, (à titre de rappel) nous pouvons aussi retirer ces lignes. Ensuite, nous pouvons les remettre (par étapes) car dès fois cela permet de dénicher une autre petite erreur. Certes, Nginx est assez fiable mais il lui reste encore des progrès à faire là-dessus.

          Bien cordialement.

          Salut @Wagner et merci pour ton retour... en effet, ton explication semble plus juste que la mienne... ayant testé sous IE11, je n'ai qu'une seule demande d'authentification ; mais elle se présente dès l'accès au site http://domain.tld/ ! Et c'est ça qui m'ennuie, parce que je ne veux pas de demande d'authentification dès la page d'accueil ; uniquement en accédant à ruTorrent. Etrangement, sous Firefox ou Opera, j'ai une double demande d'identification : 1 en accès à la page d'accueil du site, et 1 en allant sur ruTorrent.

          Regardes :
          Dans le tuto récent "https://mondedie.fr/d/9655-beta-installer-rutorrent-sur-debian-9-nginx-php-fpm", si tu cherches la balise 'auth_basic', tu trouveras 4 lignes dans le fichier "/etc/nginx/sites-enabled/seedbox.conf" : les deux premières concernent l'accès au site http(s)://domain.tld/, et les deux autres sont pour l'utilisateur "<USERNAME>" qui ira sur http(s)://domain.tld/rutorrent/.
          Moi, jusqu'à maintenant, et en suivant les tutos d'ici, je mettais un dièse devant les deux premières ligne 'auth_basic' et je pouvais accéder correctement au site http(s)://domain.tld/ sans identification. Et si j'allais sur ./rutorrent/, alors j'avais la demande d'authentification. Mais sous Debian 9, le fonctionnement semble différent car, si je commente les deux premières lignes, j'ai bien accès au site http(s)://domain.tld/ normalement, mais je n'ai plus accès à ./rutorrent ! Ce dernier m'affiche alors le message indiquant que le lien ne fonctionne pas bla bla bla... Je viens de faire l'essai, sous IE11, Firefox et Opera et le constat est le même.

          Il y a, selon moi, bel et bien une modification dans le fonctionnement de NGiNX sous Debian 9. Je ne peux malheureusement pas dire quoi. Aussi, j'aimerais bien savoir pourquoi j'ai ce pb-là, aujourd'hui, alors qu'auparavant je n'avais pas de soucis. Au pire, je réinstalle mon petit serveur dédié sous Debian 8.x et je verrai bien, vu que Debian 8 semble maintenu jusqu'à fin Avril 2020 (selon ce que j'ai lu sur le site de debian).

          Mon dilemme est donc là : dois-je attendre une solution, ou dois-je redescendre sous Debian 8... Zat Iz Ze Kouestieun! 😒

          Au plaisir, bonne soirée, et à demain !

          V.

          nginx -t;
          /etc/init.d/nginx restart;
          /etc/init.d/php7.1-fpm restart;
          

          Salut,

          de rien @virgo77 et je ne serais le dire car au quotidien, je m'en sers d'un seul (de navigateur). Néanmoins, j'ai bien compris et il doit y avoir une solution... Tu n'as pas besoin de redescendre car j'ai impression qu'il faut juste la trouver.
          Il n'y aurait pas un autre fichier ? Ou alors une erreur ? Ce serait un problème lié au navigateur (cookies, cache, etc) ?

          Au plaisir, merci bonne soirée également.

          virgo77 Pour désactiver la demande de mot de passe pour une location, il suffit d'ajouter cette directive : auth_basic off;

          Tu peux donc laisser la demande d'identification par défaut et au cas par cas la désactiver

          Par exemple pour la page de base si tu as suivi le script d'Ex_rat

                  location ^~ / {
                          root /var/www/base;
                          include /etc/nginx/conf.d/php.conf;
                          include /etc/nginx/conf.d/cache.conf;
                          auth_basic off;
                  }

          Ou cette solution passe également :

                   location ^~ / {
                          root /var/www/base;
                          include /etc/nginx/conf.d/php.conf;
                          include /etc/nginx/conf.d/cache.conf;
                          satisfy any;
                          allow all;
                  }

          Salutations, et merci à vous 2 pour vos réponses... mais malheureusement, rien n'y fait : je suis tjs bloqué tant que la 1e authentification n'est pas effectuée.

          J'ai tenté différentes manoeuvres en me servant des 4 types de balises 'location' possibles ( = | ~ | ~* | ^ ~ ) mais ça ne change rien de concret.

          Avant de commencer mes tests, j'ai commenté la ligne "root /var/www;" présente de base. Puis, si je mets ce code :

                   location / {
                          root /var/www;
                          #include /etc/nginx/conf.d/php.conf;
                          #include /etc/nginx/conf.d/cache.conf;
                          # les 2 balises 'include' ne fonctionnent pas --> démarrage de NginX "failed". Je les ai donc supprimées
                          satisfy any;
                          allow all;
                  }

          J'accède bien à la page d'accueil, sans identification. Mais le formatage de la page ne fonctionne pas. Le code PHP ne semble pas lu. Et si je tente d'accéder à ruTorrent, j'arrive sur la même page d'accueil. Donc en gros, il ne lit pas les sous-répertoires.

          Si je teste ce code :

                   location = / {
                          root /var/www;
                          satisfy any;
                          allow all;
                  }

          J'ai un "404 Not Found", quel que soit le répertoire ciblé.

          Si je teste ce code :

                   location ~ / {
                          root /var/www;
                          satisfy any;
                          allow all;
                  }

          ça permet d'arriver sur la page d'accueil sans identification, et le formatage est correct. Je peux aussi accéder à une interface vierge de ruTorrent. Par contre, aucune demande d'authentification, et un joli message en prime me disant "Bad response from server: (200 [parsererror,getplugins]) SyntaxError: Unexpected token <"

          Si je teste ce code :

                   location ~* / {
                          root /var/www;
                          satisfy any;
                          allow all;
                  }

          Mêmes symptômes que ci-dessus.

          Enfin, si je teste ce code :

                   location ^~ / {
                          root /var/www;
                          satisfy any;
                          allow all;
                  }

          J'accède à la page d'accueil, sans identification et le formatage et bon. Idem si je tente d'aller sur ruTorrent : page d'accueil.

          J'ai aussi testé avec uniquement "auth_basic off;", sans la variable 'location' ci-dessus, mais ça a le même effet que de commenter les 2 premières balises en question, soit mon symptôme de départ.

          Donc pour le moment, je suis revenu à la configuration initiale, avec les 2 balises "auth_basic" décommentées et là j'accède à la page d'accueil avec demande d'identification (chose que je ne veux absolument pas !), et ruTorrent me demande une seconde identification, mais là j'ai bien accès aux interfaces de chaque utilisateur indépendamment. J'ai d'ailleurs été contraint de relancer le serveur dédié, car avec toutes ces modifications, NGiNX ne savait plus où donner de la tête...

          Donc je ne sais pas où ça coince, mais ce qui est sûr, c'est que ça donne du fil à retordre, grrrr...

          Je continue mes recherches.

          Bien à vous !

          Cordialement,

          V.

          Salutations,

          de rien @virgo77 et merci pour le rappel @Nebukad car je l'avais oubliée (auth_basic off;). Je me sers souvent des commentaires (et au cas où je confirme, elle fonctionne aussi).

          nano /etc/init.d/<username>-rtorrent
          Par contre, je crois avoir découvert un problème avec ce fichier. Parce qu'a priori, la commande killall n'existe plus (avec Debian Stretch). Donc, si c'est vrai il va falloir corrigé la fonction rt_stop.

          17 jours plus tard

          Je suis en train de bidouiller le script debian 9 et je viens de voir que php7 continuait à me pourrir rutorrent-error.log à coup de warning à grande vitesse:

          2017/09/08 08:41:00 [error] 19969#19969: *6 FastCGI sent in stderr: "PHP message: PHP Warning:  Declaration of rxmlrpcfix::run() should be compatible with rXMLRPCRequest::run($trusted = true) in /var/www/rutorrent/plugins/filemanager/xmlfix.php on line 0" while reading response header from upstream, client: 192.168.2.130, server: _, request: "POST /rutorrent/plugins/filemanager/flm.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "192.168.2.155", referrer: "http://192.168.2.155/rutorrent/"

          En retournant google, j'ai trouvé un truc qui marche, mais ne connaissant pas trop le sujet, je ne suis pas sûr que ce soit l'idée du siècle.

          nano /etc/php/7.0/fpm/pool.d/www.conf

          ajout en bas d'une ligne:

          php_admin_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED

          et restart:

          service php7.0-fpm restart

          Calme plat après ça dans le log...
          Votre avis sur la question les pros de nginx et php ?
          Ex.

          7 jours plus tard

          Bonsoir,

          j'ai suivie le tuto comme j'ai pu le tuto car j'ai du le faire à la main car j'ai migré mon serveur en version 9.1 de Debian et impossible de faire une installation propre. ce serveur. gère mon cloud....

          j'ai donc suivi le tuto mais impossible d'installer libtorrent et torrent depuis le depot git, j'obtient le message suivant:

           root@nas:/tmp# git clone https://github.com/rakshasa/libtorrent.git
           Clonage dans 'libtorrent'...
           fatal: unable to access 'https://github.com/rakshasa/libtorrent.git/': gnutls_handshake() failed: Public key  signature verification has failed.
           root@nas:/tmp# git clone https://github.com/rakshasa/rtorrent.git
           Clonage dans 'rtorrent'...
           fatal: unable to access 'https://github.com/rakshasa/rtorrent.git/': gnutls_handshake() failed: Public key  signature verification has failed.
          

          j'ai donc récuperer rutorrent comme j'ai pus j'ai finis la configuration sans la partie compilation de rtorrent.

          j'accede bien a l'interface avec mon user paramètres mas lorsque je lance le chargement j'obtient invariablement le message d'erreur :

           Bad response from server: (502 [error,list]) <html>
           <head><title>502 Bad Gateway</title></head>
           <body bgcolor="white">
           <center><h1>502 Bad Gateway</h1></center>
           <hr><center>nginx</center>
           </body>
           </html>
          

          avez vous une idée d'ou viens ces problèmes???

          cordialement.