Configurando o Apache

O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre.

O servidor é configurado por um arquivo mestre nomeado httpd.conf e opcionalmente pode haver configurações para cada diretório utilizando arquivos com o nome .htaccess, onde é possível utilizar autenticação de usuário pelo próprio protocolo HTTP utilizando uma combinação de arquivo .htaccess com um arquivo .htpasswd, que guardará os usuários e senhas (criptografadas).

Autenticação no Apache2

Vou explicar aqui como você disponibilizar o acesso a uma pasta do Apache(www) exigindo usuario e senha.

mkdir /var/www/teste 
echo Testando autenticação no Apache > /var/www/teste/index.html 
touch passwd .htaccess
AuthName "Nome que aparecerá no título da janela"
AuthType Basic
AuthUserFile /var/www/teste/passwd
require valid-user 
htpasswd -c passwd usuário

Será pedida a senha do novo usuário e em seguida sua confirmação.

New password
Re-type new password
Adding password for user usuário

Ao abrir o arquivo de senhas (passwd), serão vistos os nomes de usuário e senhas criptografadas.

more passwd
usuário:ZzbJ.YtR6TyyU
"/etc/apache2/sites-available/default"

Colocando as seguintes linhas no final do arquivo antes da tag, substituindo todas as diretivas conforme suas necessidades, uma observação importante é para a tag

AllowOverride, a mesma deve conter “AuthConfig” para que a autenticação seja bem sucedida.

Alias /teste/ "/var/www/teste/"
Options Indexes MultiViews FollowSymLinks
AllowOverride AuthConfig
Order deny,allow
Deny from all
Allow from 172.16.0.0/255.0.0.0 ::1/128
/etc/init.d/apache2 restart

Observações: as linhas abaixo se referem à restrição por IP, não são necessárias à autenticação.

Deny from all Allow from 172.16.0.0/255.0.0.0 ::1/128

E todo esse tramite desse ser feito pelo usuário root para funcionar.

Habilitar o mod_rewite no Apache (.htacces)

Pra quem vai trabalhar com MVC no PHP (por exemplo) precisa habilitar o mod_rewrite no Apache pra que funcione, segue os passos pra fazer isso

1-Logue como root:

su

2-Abra o arquivo default do Apache:

vi /etc/apache2/sites-available/default

3-Edite o arquivo da seguinte forma

Substitua por “AllowOverride AuthConfig” e altere a linha “AllowOverride None” dentro de substituindo por “AllowOverride All”.

4- Não esqueça de habilitar o mod_rewrite

a2enmod rewrite

5-Reinicie o apache

/etc/init.d/apache2 restart

Agora vamos testar

6-Crie um arquivo .htacces dentro do diretório /var/www/

vi /var/www/.htaccess

7-Escreva isso dentro do Arquivo, salve e feche-o

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?chave=$1 

8-Agora crie um arquivo index.php e cole o conteúdo logo abaixo

vi /var/www/index.php

9-Acesse o endereço http://localhost/nomequalquer/outronome/

Se imprimir na tela: nomequalquer/outronome/ (ou o nome que você escolheu), está tudo certo.Você já pode escrever seu Framework!