2009
04.18

Exitem algumas diferenças entre configurar um apache em um Debian, Slackware ou CentOS/RHEL… Não vou listá-las agora, mas penso em fazer essa comparação qualquer dia desses e postar aqui. O objetivo deste post é apenas mostrar algumas coisas legais que são possíveis com o apache, e, fazer isso no slackware para mostrar como se faz isso tudo na minha amada distro….em um próximo POST falo sobre virtual hosts também…

DICA IMPORTANTE: Caso você possua uma máquina com processador 64bits, use o Bluewhite64, que é igual ao slackware, só que recompilado/otimizado para esta arquitetura, os procedimentos serão IGUAIS.

Vou falar aqui sobre:

  • Como listar arquivos de uma pasta, o que não é permitido por padrão no slackware.
  • Habilitar e customizar o Módulo Auto-Index, para que seja mostrado um index personalizado na hora de listar os arquivos.

ok…vamos lá..!

Levantando o apache

A primeira coisa a se fazer é startar o serviço, você pode fazer isso com o comando #sh /etc/rc.d/rc.httpd start.
NOTA: se quiser que o apache inicialize junto com o sistema , dê permissões de execução ao script e o Slackware irá carregar o apache sempre na inicialização, para dar a permissão de execução execute: #chmod +x /etc/rc.d/rc.httpd.

Você provavelmente receberá um aviso de que não foi setado o “server name” e que será usado 127.0.0.1 como server name, isto não é problema em uma máquina local, mas é interessante você setar o server name com o nome do HOST caso esta máquina vá atender alguma rede. Agora tente acessar pelo browser: http://127.0.0.1, se lhe for apresentado a frase “It Works” é porque o apache já está funcionando corretamente. Muito bem, mas você quer que esta página seja um mirror de downloads de arquivos diversos, talvez instalações de softwares e coisas que outras pessoas possam baixar….

Permitindo a listagem de arquivos

Para que sejam listados os arquivos de uma pasta você deve editar o httpd.conf, alterando as seguintes linhas:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

Para:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

E, incluir o seguinte (pode ser no final do arquivo):

AccessFilename .htaccess

Isto fará com que instruções contidas no arquivo .htaccess dentro de um diretório do apache alterem as diretivas default do httpd.conf. Agora, entre dentro do seu diretório www (cd /var/www/htdocs/) e crie o arquivo .htaccess, com o seguinte conteúdo:

Options Indexes FollowSymLinks

pronto, agora reinicie o apache com: #sh /etc/rc.d/rc.httpd restart e acesse http://127.0.0.1 com o browser e pronto, já é possível visualizar todos os arquivos.

CONSIDERAÇÕES:Nunca deixe isso habilitado na raiz do /var/www/htdocs, coloque o .htaccess apenas dentro do diretório onde devem ser listados os arquivos, o Slackware por padrão não mostra os arquivos por uma questão de segurança.

Brincando com o Módulo AutoIndex para deixar isso mais bonito…

Muito bem, já conseguimos ver os arquivos, mas convenhamos que aquele “Index of /” e os arquivos logo ali em baixo não são a coisa mais bonita do mundo certo? Muito bem para deixar as coisas um pouco mais ajeitadas, edite novamente o arquivo /etc/httpd/httpd.conf e habilite o módulo “autoindex” descomentando a linha:

# Fancy directory listings
#Include /etc/httpd/extra/httpd-autoindex.conf
<—–  apenas retire o # da frente desta linha

Reinicie o apache novamente (não vou falar novamente como é, se não lembra olha ali pra cima ok?) e acesse novamente o http://127.0.0.1 e você vai ver que a coisa já ficou um pouco mais organizada…. Porém se você trabalha em uma empresa, quer colocar um logotipo, talvez um email para contato, pode usar o AutoIndex para criar um HEADER personalizado, vamos lá:

Crie um arquivo HEADER.html dentro do diretório com o seguinte conteúdo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
        <link rel="stylesheet" href="/include/autoindex.css" type="text/css" media="screen" />
        <title>COLOQUE O NOME DA USA EMPRESA AQUI</title>
</head>
<body>
<div id="wrapper">

    <div id="titulo">
        <img src="/include/logo.png">
        <h2>COLOQUE O NOME DA SUA EMPRESA AQUI TAMBÉM</h2>
        <h4>Pode colocar também uma mensagem de instruções ou aviso....</h4>
    </div>
<!-- Exemplo de seleção tirado da documentação do Apache
<form action="" method="get">
<p>Ordenar por:
<select name="C">
        <option value="N" selected="selected"> Nome</option>
        <option value="M"> Data de Modificação</option>
        <option value="S"> Tamanho</option>
</select>
<select name="O">
<option value="A" selected="selected"> Crescente</option>
<option value="D"> Decrescente</option>
</select>
Padrão: <input type="text" name="P" value="*" />
<input type="submit" name="X" value="Ir" /></p>
</form>
-->

<div id="listagem">

e outro arquivo com o nome README.html com o conteúdo:

</div>
<div id="disclaimer">
	<p>
		Coloque seu nome ou o nome do departamento de informática aqui<br />
		<a href="mailto:email@seudominio.com">email@seudominio.com</a></p>
</div>
</body>
</html>

Crie uma pasta com o nome “include” dentro da raiz do seu site para guardar as imagens que irá usar neste index e também crie um arquivo com o nome autoindex.css lá dentro, com o seguinte conteúdo:

body {
            background-color: #000000;
            font-size: 13px;
}
img {
            border: 0;
}
#wrapper {
            background-color: #ffffff;
            width: 95%;
            margin: 20px auto 20px auto;
            padding: 10px;
            text-align: center;
}
#titulo {
            text-align: center;
}
#listagem table {
            width: 90%;
            margin: 10px auto 10px auto;
            border: 1px dotted #000000;
            text-align: left;
}
#listagem table tr th {
            display: none;
}
#disclaimer {
            width: 75%;
            margin: 0 auto 0 auto;
            background-color: #e0e0ff;
            border: 1px solid #000000;
            text-align: center;
}

Acesse novamente o http://127.0.0.1 e veja como agora está tudo diferente.

Dica BÔNUS

Você deve ter percebido que o HEADER.html e o README.html não aparecem na listagem de arquivos, isto é uma configuração padrão do modulo autoindex, se você quiser esconder também a pasta “include” pode usar o “.htaccess” para isso, apenas adicione a seguinte linha nele:

IndexIgnore include

FIM

Eu usei um site que encontrei na internet com algumas dessas dicas e agreguei mais algumas coisas, o autor que me perdoe pois perdi o endereço, mais informações também podem ser obtidas na documentação do apache: http://httpd.apache.org/docs/2.0/

Nenhum comentário.

Adicione Seu Comentário