domingo, 12 de dezembro de 2010

How to: Torrentflux Diet com lighttpd e sqlite

Você, que tem aquele pau velho esquecido num canto, um K6-II ou um Pentium III 866, pode com certeza colocá-lo em combate novamente como um cliente torrent dedicado, ou compartilhado com outras funções como servidor de arquivos ou impressão.

Para isso, temos o TorrentFlux, um gerenciador de torrents escrito em PHP, cuja configuração original usa uma box LAMP como base. Mas se temos apenas uma máquina low-end, não fica bem sobrecarregá-la com um Apache e um servidor MySQL, não é mesmo? 

Então vamos aos ingredientes:



Para fazer nossa mágica, vamos utilizar o Lighttpd, ou lighty para os íntimos, um servidor Web poderoso, seguro e leve, motor de diversos sites, como o YouTube, SourceForge, KingHost e OpenSubtitles. Suporta PHP e tem diversos outros atrativos (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting), além de ser liberado sob a licença BSD revisada.

Consome muito menos memória que o Apache, então, já sabe.

Já que o negócio é economizar, nesse quesito o SQLite dá um banho na concorrência. Seu pacote compilado tem apenas 236KB, uma ninharia comparado ao MySQL. Vejam bem, não estou falando que o SQLite é melhor em todos os casos, e sim, neste caso específico.

Feitas as devidas apresentações, vamos ao que interessa.

Instale e configure as dependências com:
#apt-get install sqlite lighttpd
#apt-get install php5-cgi php5-sqlite
#cat >> /etc/php5/cgi/php.ini
cgi.fix_pathinfo = 1


Adicione o módulo fastcgi com:

#nano /etc/lighttpd/lighttpd.conf

[...]
server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_fastcgi",
# "mod_rewrite",
# "mod_redirect",
# "mod_status",
# "mod_evhost",
# "mod_compress",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
# "mod_expire",
# "mod_flv_streaming",
# "mod_evasive"
)
[...]

Edite o final do mesmo arquivo para que fique desta forma:

fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 2,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
)))


Faça o download do tarball aqui e do script de configuração do SQLite neste link.
Crie os diretórios de trabalho e o banco de dados:

#mkdir /var/www/tf
#mkdir /var/db/

#cd /var/db/
#sqlite tf.db < "caminhodoarquivo sqlite_torrentflux.sql"


Extraia os arquivos do pacote e cole a pasta html em /var/www/tf/

Na pasta /var/www/tf/ altere o arquivo config.php que está dessa forma:

$cfg["db_type"] = "mysql"; // mysql, postgres7 view adodb/drivers/
$cfg["db_host"] = "localhost"; // DB host computer name or IP
$cfg["db_name"] = "torrentflux"; // Name of the Database
$cfg["db_user"] = "root"; // username for your MySQL database
$cfg["db_pass"] = ""; // password for database


Para essa forma:

$cfg["db_type"] = "sqlite"; // mysql, postgres7 view adodb/drivers/
$cfg["db_host"] = "/var/db/tf.db"; // DB host computer name or IP
$cfg["db_name"] = "main"; // Name of the Database
$cfg["db_user"] = "seuusuario"; // username for your SQLite database
$cfg["db_pass"] = "suasenha"; // password for database


Reinicie o lighty:

#/etc/init.d/lighttpd restart


Um screenshot da belezinha rodando.


E pronto, rapaz! Agora basta acessar seu TorrentFlux à partir de http://localhost/tf ou se você criar um nome fixo para sua máquina, poderá controlar seus downloads de qualquer lugar da Terra.

Nenhum comentário:

Postar um comentário