VirtualHost no Apache 2.4 em VPS rodando CentOS 7

Não sou expert em webserver mas há tempos uso o Apache para os projetos onde sou envolvido. Com o tempo algumas coisas se tornam “automáticas” devido a repetição, o que está mudando com o uso dos automatizadores como Chef ou Puppet. Mas o fato é que com o advento do Apache 2.4 vindo por padrão no CentOS 7, algumas coisas básicas mudaram:

Versão do Apache me execução em uma VPS com CentOS 7:
# apachectl -v
Server version: Apache/2.4.6 (CentOS)
Server built: Jul 23 2014 14:48:00

“NameVirtualHost: *80″

Essa instrução, usada para “ativar” o uso de virtual hosts no webserver, não é mais usada no Apache 2.4 e deve ser totalmente removida.

“Order Allow,Deny
Allow from all”

Essas instruções, muito usada principalmente em sites pequenos sites de intranet e projetos menores também não é mais usada (uma pena! Eu gostava dela :D). Era uma forma simples de controla o acesso, principalmente por IP, ao site/recurso. No caso acima, a galáxia toda seria permitida. Bem, o fato é que se você quiser usar esse recurso novamente (dá-lhe saudosismo) pode reativá-lo carregando um módulo específico:

LoadModule access_compat_module modules/mod_access_compat.so

A nova forma de controlar o acesso ao seu site é usando a instrução “require”. Veja o exemplo abaixo com as linhas em destaque:

<VirtualHost *:80>
 ServerName quebratudo
 ServerAlias quebratudo
 DocumentRoot /var/www/quebratudo
   <Directory "/var/www/quebratudo">
     AllowOverride All
     Require local
     Require ip 192.168.3
   </Directory>
</VirtualHost>

Acesso liberado para a rede local + rede 192.168.3.0/24

Done!!!