Configurações
Configurando Apache
O Apache é o servidor de páginas WEB que usaremos. Ele em si é leve, porém, se não for configurado bem em uma máquina com recursos limitados, ele pode dar dor de cabeça.
As "dores" mais comuns, são:
- WSD (White Screen of Death) ou como é mais conhecido: "Falta de memória para o PHP".
- MySQL falhando ao iniciar ou tendo o processo morto pelo sistema.
- MySQL não consegue criar uma nova instância e retorna com o erro de Pthread 11. Por não conseguir criar uma nova instância o MySQL, decide abortar o pedido de acesso à base de dados.
Para evitar esse tipo de problema, vamos configurar o Apache mudando o arquivo
/etc/Apache/conf/httpd.conf:
MaxSpareServers 5
MinSpareServers 1
StartServers 3
Caso você queira fazer mais ajustes, cheque esse documento:
Verdade, eu estou te indicando a leitura do manual do Apache. :)
Infelizmente, não há uma tradução em Português desse manual ainda (até aonde eu sei, não há, pode ser que alguém, em algum canto da Internet, já traduziu.)
Configurando o MySQL
MySQL é uma base de dados que cada vez cresce em números. Sites com tráfico pesado, como Facebook, YouTube, Google, Wikipedia, etc, usam a base de dados MySQL porque, em si, ela não é pesada. Porém, quando você usa scripts malfeitos ou websites "prontos", cheios de scripts e templates, como Joomla! e WordPress, o MySQL pode facilmente ter 10 chamadas à base de dados em uma só página que é carregada.
Vamos traduzir isso em MB: um RSS fazendo mais de 10 chamadas à base de dados vai produzir um documento de 35 KB, mas, para gerar esse simples documento, ele pode consumir 25 MB de RAM só em processamento de dados.
O que não é tão ruim, quando você tem um computador com bastante RAM. Agora, para o nosso experimento com 128 MB um RSS carregando 25% da memória, como fica o armazenamento para os outros programas? Então, vamos reduzir isso.
Esses parâmetros abaixo, são do meu
/etc/mysql/my.cnf, se você quiser usar um exemplo já feito, pode encontrar na pasta /
usr/share/doc/my-server-5.0/examples, no caso dos "filhos" do Debian. :)
Caso em sua distro não exista esses exemplos, copie o meu
my.cnf:
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
skip-bdb
skip-innodb
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
#safe-updates
[isamchk]
key_buffer = 8M
sort_buffer_size = 8M
[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
Foi adicionado o seguinte
skip-bdb e
skip-innodb, assim, você não carrega o suporte para BSD DB ou InnoDB. Já que ambos são águas passadas, obsoletos, velhos, desnecessários para o nosso projeto.
key_buffer tem somente 16 K, o que já é mais que suficiente.
key_buffer é um dos parâmetros mais importantes para as tabelas MyISAM; seria bom deixar com 1 MB, se você quer fazer um blog ou algo parecido, o que não é o nosso caso, então, deixe com 16 K.
A mesma coisa para o
table_cache - 4 e muito pequeno para outro tipo de aplicação. Uma página do WordPress vai chamar 10, facilmente; e muito mais no caso do Drupal ou MediaWiki. Nosso projeto não vai carregar nada parecido com esse tipo de website.
Depois destes simples ajustes, o seu MySQL deve estar rodando com uma velocidade boa e carregando a memória com menos dados. Se você fazer o teste com o RSS, puxando a informação do MySQL, em vez de carregar com 25 MB, agora você vai ver que ele vai carregar com 5~6MB. Deixando assim, mais espaço na RAM para as outras aplicações.
Configurando o MediaTomb
Vamos iniciar com o MySQL. Precisamos criar uma base de dados para o MediaTomb.
Assim, vamos digitar no terminal:
# mysql -u <usuario> -p
mysql> mysql -u root -p
mysql>
CREATE DATABASE nome-da-base-de-dados;
mysql> CREATE DATABASE mediatomb;
mysql>
GRANT ALL ON <database name>.* TO '<user name>'@'<hostname>' IDENTIFIED BY '<password>';
mysql> GRANT ALL ON mediatomb.* TO 'mediatomb'@'%' IDENTIFIED BY 'suasenha';
mysql>
flush privileges;
mysql> quit;
# mysql [-u <username>] [-p] <database name> < <install prefix>/share/mediatomb/mysql.sql
mysql> mysql -u mediatomb -p mediatomb < /usr/share/mediatomb/mysql.sql
[digite a senha do MediaTomb]
mysql> mysql -u mediatomb -p mediatomb
[senha do MediaTomb, no meu exemplo "suasenha"]
mysql>
show tables;
Se até aqui você não recebeu nenhuma mensagem de erro e o resultado desses comandos foram:
mt_autoscan
mt_cds_active_item
mt_cds_object
mt_internal_setting
Parabéns, você criou a base de dados para o MediaTomb no MySQL. Agora, vamos ativá-la no próprio MediaTomb.
Para sair do MySQL, digite:
mysql>
quit;
Para ajustar a configuração, abra o seu editor
${diretório padrão da distro}/mediatomb/config.xml:
sudo nano /etc/mediatomb/config.xml
* Atenção: não copie e cole o código abaixo, leia o seu conf e ajuste como necessário. Vamos modificar onde existe e inserir onde não existe, os seguintes valores:
<protocolInfo extend="yes"/>
<ui enabled="yes" poll-interval="2" poll-when-idle="no" show-tooltips="yes"/>
<accounts enabled="yes" session-timeout="30"/>
<account user="name" password="password"/>
<storage caching="yes">
<sqlite enabled="no">
<mysql enabled="yes"/>
<username>mediatomb</username>
<password>suasenha</password>
<database>mediatomb</database>
<ffmpegthumbnailer enabled="no">
<map from="avi" to="video/divx"/>
<map from="ogg" to="audio/ogg"/>
<lastfm enabled="no">
<virtual-layout type="disabled">
<extension-mimetype ignore-unknown="yes" case-sensitive="no">
<transcoding enabled="no">
<treat mimetype="audio/ogg" as="ogg"/>
Se tem algum outro parâmetro não mencionado aqui, deixe como está.
Pronto. Feita essas alterações, reinicie o MediaTomb:
sudo /etc/init.d/mediatomb restart
Tendo reiniciado com sucesso, abra o seu navegador em:
http://localhost:49152
Ou:
http://numero_do_ip:49152
. Você deve, então, estar na tela inicial, vendo duas opções no lado esquerdo da página
na parte da database.
Não existe nada ainda, porque estaremos entrando os dados das pastas que o MediaTomb vai acessar. Clique em
para acessar todo o sistema de arquivos do seu computador, navegue até a pasta que você quer compartilhar. No meu caso, eu tenho 2 HDs, um com vídeos e outro com fotos e músicas.
Eu vou então navegar até as pastas de vídeos que eu quero compartilhar e, ao selecionar a pasta no canto direito, eu vou ter dois sinais de soma (+), um normal e outro com duas setas, dando a ideia de um ciclo, clique nesse sinal com o ciclo.
Isso vai determinar que a pasta selecionada em um determinado tempo, será escaneada pelo MediaTomb em procura de novos arquivos. Se algum arquivo teve o nome modificado, o MediaTomb, automaticamente, vai mudar o nome na database para que você continue tendo acesso ao arquivo.
, Inodify toma muito tempo e recursos do sistema. E Timed, vai determinar que, ao passar o intervalo determinado o escaneamento, será reiniciado. Para garantir que todas as pastas abaixo da pasta seleciona sejam escaneadas, selecione
, todas as pastas depois disso não precisam ser configuradas. Agora, se entre as séries você só quer compartilhar o Season 2 do IT Crowd, ao invés de selecionar
a seu critério. Eu aconselharia deixar o Recursive ligado e Hidden desligado.
Depois disso confira que as pastas foram escaneadas e agora estão disponíveis na opção Database no canto superior esquerdo.