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.

quinta-feira, 9 de dezembro de 2010

Como remover entradas inúteis de mime-type no Debian

De algum tempo para cá, vinha notando que a saída do apt-get estava muito grande. Olhando com mais calma, notei que todas as atualizações vinham com essas mensagens no final, embora meu sistema estivesse funcionando corretamente.

Unknown media type in type 'all/all'

Unknown media type in type 'all/allfiles'

Unknown media type in type 'uri/mms'

Unknown media type in type 'uri/mmst'

Unknown media type in type 'uri/mmsu'

Unknown media type in type 'uri/pnm'

Unknown media type in type 'uri/rtspt'

Unknown media type in type 'uri/rtspu'

Unknown media type in type 'fonts/package'

Unknown media type in type 'interface/x-winamp-skin'


Chato que sou fui ver que merda era essa. Descobri que um arquivo .xml de mime-types do KDE estava cagando tudo. Para encurtar a história, abra como root o arquivo /usr/share/mime/packages/kde.xml e procure pelas entradas dos mime-types desconhecidos e delete-as.

Um exemplo:

lt;mime-type type="interface/x-winamp-skin">
<sub-class-of type="application/zip"/>
<comment>compressed Winamp skin</comment>
<glob pattern="*.wsz"/>
</mime-type>


Apague cada uma delas, e se você tiver dúvida se apagou tudo, rode o comando:

#update-mime-database /usr/share/mime


Não tenho certeza, mas esse método também deve funcionar nos inúmeros derivados do Debian.
Após apagar todas as entradas, você não terá mais a chatice dessas mensagens.
As férias estão boas, então tenho de ir. Até a próxima.