Installer le client BitTorrent wTorrent sur Debian
wTorrent est une interface Web pour le client BitTorrent rTorrent. Ce guide vous aide à l'installer sur Debian.
Ce guide est testé sur:
- Debian 6.0 Squeeze
Ce guide est testé avec ces versions de wTorrent:
- Clone git du 25 Juin 2012.
Prérequis
Ce guide nécessite :
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- l'outil php-tools de configuration simplifiée de PHP.
- le démon du client BitTorrent rTorrent, comme décrit par Installer la dernière version de rTorrent sur Debian.
Ce guide nécessite l'un des outils ci-dessous, suivant le serveur HTTP choisi:
- a2tools disponible dans Installer et configurer Apache 2 sur Debian.
- lighty-tools disponible dans Installer et configurer Lighttpd sur Debian.
Ce guide recommande l'installation de la protection Peer 2 Peer PeerGuardian sur Debian.
Paramètres
Renseignez le nom de domaine où sera disponible l'application:
DOMAIN="bt.domaine-exemple.fr"
Installation
Déterminez le chemin d'installation:
INSTALL_PATH="/opt/wtorrent/${DOMAIN}"
Assurez-vous que le dossier parent existe:
PARENT_PATH="$(command dirname "${INSTALL_PATH}")"
if [ ! -e "${PARENT_PATH}" ]; then
command mkdir --parent "${PARENT_PATH}"
fi
Préparation de l'environnement
Installez les logiciels nécessaires:
command apt-get install php5-sqlite git \
apache2-utils apg
Adaptez la configuration PHP aux besoins de l'outil:
command php-tools --for="wtorrent" --set "suhosin.get.max_value_length" 4000
Rechargez la configuration de PHP:
test -x /etc/init.d/php5-fpm && /etc/init.d/php5-fpm force-reload
test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload
test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload
test -x /etc/init.d/nginx && /etc/init.d/nginx force-reload
Mise en place de l'application
Téléchargez les sources de l'application:
command git clone "https://github.com/749/wtorrent" "${INSTALL_PATH}"
Créez les dossiers destinés à contenir les fichiers créés par l'application:
command mkdir --parent "/var/lib/wtorrent/${DOMAIN}/data" command mkdir --parent "/var/lib/wtorrent/${DOMAIN}/db" command mv "${INSTALL_PATH}/wtorrent/tpl_c" "/var/lib/wtorrent/${DOMAIN}/tpl_c" command mv "${INSTALL_PATH}/wtorrent/torrents" "/var/lib/wtorrent/${DOMAIN}/torrents" command chown -R www-data:www-data "/var/lib/wtorrent/${DOMAIN}"
Créez les liens symboliques associés à ces dossiers:
command ln -s "/var/lib/wtorrent/${DOMAIN}/tpl_c" "${INSTALL_PATH}/wtorrent/tpl_c" command ln -s "/var/lib/wtorrent/${DOMAIN}/torrents" "${INSTALL_PATH}/wtorrent/torrents"
Autorisez le serveur HTTP à ajouter des fichiers dans le dossier de configuration :
command chown www-data:www-data "${INSTALL_PATH}/wtorrent/conf/"
Configurez l'application:
command sed -i -e "/\$defaults/,/\$user_options/s|^\(.*db_file.*=>\).*$|\1 '../../../../var/lib/wtorrent/${DOMAIN}/db/database.db',|" \ -e "/\$defaults/,/\$user_options/s|^\(.*dir_torrents.*=>\).*$|\1 'torrents/',|" \ -e "/\$defaults/,/\$user_options/s|^\(.*dir_exec.*=>\).*$|\1 '${INSTALL_PATH}/wtorrent/',|" \ -e "/\$defaults/,/\$user_options/s|^\(.*dir_download.*=>\).*$|\1 '/var/lib/wtorrent/${DOMAIN}/data/',|" \ "${INSTALL_PATH}/wtorrent/cls/install.cls.php"
Créez le fichier de configuration:
command cp "${INSTALL_PATH}/wtorrent/conf/sample.user.conf.php" "${INSTALL_PATH}/wtorrent/conf/user.conf.php" command chown www-data:www-data "${INSTALL_PATH}/wtorrent/conf/user.conf.php"
Créez la configuration du serveur HTTP pour votre domaine:
if [ -x "/usr/local/bin/a2tools" ]; then command a2tools --overrides="All" "${DOMAIN}" "${INSTALL_PATH}/wtorrent/" fi if [ -x "/usr/local/bin/lighty-tools" ]; then command lighty-tools add-vhost "${DOMAIN}" "${INSTALL_PATH}/wtorrent/" fi
Configuration du serveur SCGI
Créez un identifiant et mot de passe aléatoire pour l'accès au serveur SCGI:
SCGI_LOGIN="$(command apg -q -a 0 -n 1 -M NCL)" SCGI_PASSWORD="$(command apg -q -a 0 -n 1 -M NCL)"
Créez le fichier mot de passe pour le serveur HTTP:
command htpasswd -cb "/var/lib/wtorrent/scgi.pwd" "${SCGI_LOGIN}" "${SCGI_PASSWORD}"
Mettez à jour la configuration de l'application avec les informations d'identification:
command sed -i -e "/\$defaults/,/\$user_options/s|^\(.*rt_user.*=>\).*$|\1 '${SCGI_LOGIN}',|" \ -e "/\$defaults/,/\$user_options/s|^\(.*rt_passwd.*=>\).*$|\1 '${SCGI_PASSWORD}',|" \ -e "/\$defaults/,/\$user_options/s|^\(.*rt_auth.*=>\).*$|\1 true,|" \ "${INSTALL_PATH}/wtorrent/cls/install.cls.php"
Configurez le serveur Apache 2 pour officier comme serveur SCGI pour rTorrent, si il est installé:
if [ -x "/usr/local/bin/a2tools" ]; then
command apt-get -y install libapache2-mod-scgi
command a2enmod scgi rewrite
if [ -z "$(command grep 'NameVirtualHost 127.0.0.1:80' /etc/apache2/ports.conf)" ]; then
command sed -i -e '/Listen[\t ]*80/i\
NameVirtualHost 127.0.0.1:80' '/etc/apache2/ports.conf'
fi
command echo "<VirtualHost 127.0.0.1:80>
ServerName localhost
<IfModule mod_scgi.c>
SCGIMount /RPC2 127.0.0.1:5000
</IfModule>
<Location /RPC2>
Order deny,allow
Allow from all
# We enable password authentication
AuthType Basic
AuthName \"rTorrent SCGI\"
AuthUserFile /var/lib/wtorrent/scgi.pwd
Require valid-user
</Location>
<Location />
Order deny,allow
Allow from all
</Location>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} "\!"^/RPC2
RewriteCond %{REQUEST_URI} "\!"^/server-status
RewriteCond %{REQUEST_URI} "\!"^/php-fpm-status
RewriteCond %{REQUEST_URI} "\!"^(/php5.fastcgi)?/apc-info
RewriteRule ^/(.*) http://${DOMAIN}/\$1 [R=301,L]
</IfModule>
</VirtualHost>" \
> '/etc/apache2/sites-available/http-localhost-rtorrent'
command a2ensite http-localhost-rtorrent
/etc/init.d/apache2 force-reload
fi
Configurez le serveur LigHTTPd pour officier comme serveur SCGI pour rTorrent, si il est installé:
if [ -x "/usr/local/bin/lighty-tools" ]; then
command echo '# rTorrent SCGI configuration. server.modules += ( "mod_scgi", "mod_auth" ) scgi.server = ( "/RPC2" => # RT_DIR ( "127.0.0.1" => ( "host" => "127.0.0.1", # Ip where rtorrent is listening "port" => 5000, # Port specified in .rtorrent.rc "check-local" => "disable" ) ) ) auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/var/lib/wtorrent/scgi.pwd" auth.require = ( "/RPC2" => ( "method" => "basic", "realm" => "XML-RPC", "require" => "valid-user" ) ) ' > '/etc/lighttpd/conf-available/10-rtorrent.conf'
command lighty-enable-mod rtorrent
/etc/init.d/lighttpd force-reload
fi
Initialisation de wTorrent
AVANT TOUTE AUTRE ACTION, accédez au script d'installation de wTorrent pour créer votre compte administrateur. Utilisez l'URL affichée par:
command echo "http://${DOMAIN}/install.php"
Ignorez le test de configuration. Il ne fonctionne pas (il signale que la création de la base de données est impossible).
Une fois votre configuration terminée, effacez le fichier d'installation et protégez la configuration:
command rm "${INSTALL_PATH}/wtorrent/install.php" command chown -R root:root "${INSTALL_PATH}/wtorrent/conf/"
wTorrent est maintenant accessible depuis l'URL fournie par:
command echo "http://${DOMAIN}/"
Mise à jour automatique
Mettez en place un script de mise à jour automatique quotidienne du code de l'outil:
echo "#"'!'"/bin/bash
# Update ${PROTOCOL}://${DOMAIN}/ source code from Git.
test -x '/usr/bin/git' -a -d '${INSTALL_PATH}' && {
pushd '${INSTALL_PATH}' > '/dev/null'
/usr/bin/git pull --quiet > '/dev/null'
popd > '/dev/null'
}" \
> "/etc/cron.daily/${DOMAIN}-update"
command chmod +x "/etc/cron.daily/${DOMAIN}-update"
Sauvegardes
Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):
command backup-manager-tools add "${INSTALL_PATH}" command backup-manager-tools add "/var/lib/wtorrent"
Résolution des problèmes
Si le processus d'installation vous informe que la base de données est déjà créée, exécutez la commande suivante et relancez l'installation:
command rm "/var/lib/wtorrent/${DOMAIN}/db/database.db"
Si le démon rtorrent ne se lance plus, essayez d'effacer le fichier verrou :
command rm '/var/lib/rtorrent/sessions/rtorrent.lock'
Remerciements
- Merci aux développeurs de wTorrent.
- Merci à Robert Penz pour son guide Howto install rtorrent and wtorrent within an Ubuntu Hardy VE.
- Merci à FlipsideReality pour son guide "rtorrent with wtorrent on debian etch complete HOWTO".