1.15. Como configurar o apache para trabalhar com o htaccess?

### CL 9 ###

O htaccess é uma opção do apache, para a autenticação de usuários. Isso quer dizer, se você está precisando autenticar usuários para páginas de internet, esta pode ser uma boa opção.

Para configurarmos, primeiramente instalamos o pacote apache-htpasswd, utilizando o seguinte comando, como administrador da máquina (usuário root), abaixo:

    [root@localhost]# apt-get install apache-htpasswd


ou

    [root@localhost]# rpm -ivh apache-htpasswd*


Após a instalação do pacote, iremos fazer as configurações necessárias para a utilizaçao do htaccess.

Para isso, crie um arquivo .htaccess no diretório do apache, onde você quiser restringir o acesso, da seguinte forma, como no exemplo abaixo:

Crie o arquivo, da seguinte forma:

    [root@localhost]# mcedit /srv/www/default/html/.htaccess


Obs.: Nesse exemplo, ele criará o arquivo .htaccess no diretório principal do apache, isso quer dizer que ele fará a verificação para toda e qualquer página que esteja dentro deste diretório.

Dentro do arquivo, adicione as seguintes entradas:

    AuthType Basic
    AuthName  /srv/www/default/html
    AuthUserFile /etc/senhas
    AuthGroupFile /dev/null
    Require valid-user


Analisando as entradas no arquivo .htaccess :

    AuthType Basic -> Este é o tipo padrão de autenticação. 
    AuthName  /srv/www/default/html -> Este é o lugar onde ficará o arquivo .htaccess.
    AuthUserFile /etc/senhas -> Este é o arquivo de senhas, que será criado mais a frente.
    AuthGroupFile /dev/null -> Arquivo de grupo, no nosso exemplo não esta sendo utilizado.
    Require valid-user -> Faz a verificação por um usuário válido do htaccess.


Salve o arquivo com a tecla F2 e saia do editor com a tecla F10 .

Agora, criaremos o arquivo de senhas, como abaixo:

    [root@localhost]# htpasswd -c /etc/senhas teste


Ele criará o arquivo senhas dentro do diretório /etc, o usuário teste, e a senha para este usuário. Você poderá criar vários usuários para a utilização deste serviço, para fazê-lo, simplesmente repita o comando acima retirando a opção -c e logicamente alterando o nome de usuário, da seguinte forma:

    [root@localhost]# htpasswd /etc/senhas teste2


Depois de criado o usuário e senha para a utilização do htaccess, temos que fazer algumas alterações no arquivo /etc/apache/conf/httpd.conf:

    [root@localhost]# mcedit /etc/apache/conf/httpd.conf


Dentro do arquivo de configuração do apache, devemos procurar pela entrada AccessFileName, usando a tecla F7.

Achando-a, descomentaremos a entrada retirando o caracter # , da seguinte forma:

    #
    # AccessFileName: The name of the file to look for in each directory
    # for additional configuration directives.  See also the AllowOverride
    # directive.
    #
    AccessFileName .htaccess -> Descomente esta entrada, tirando o caracter #.


Após isso, procuraremos dentro do arquivo pela entrada AllowOverride, descomentando e adicionando a diretiva All, para que o htaccess trabalhe corretamente:

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
        AllowOverride All -> Descomente esta linha tirando o caracter #, e coloque a diretiva All.


Salve o arquivo com a tecla F2 e saia do editor com a tecla F10 .

Após editado o arquivo de configuraçao, pare e ligue novamente o serviço de páginas WEB, com os seguintes comandos:

    [root@localhost]# service httpd stop


    [root@localhost]# service httpd start