Eu utilizo o Dropbox para compartilhar arquivos com meus alunos pela Internet. E, como ja citei em posts anteriores, utilizo o DropbProx que desenvolvi como uma forma de ter uma URL melhor identificada com meu dominio (Ex.: http://a.ladoservidor.com/equipe/index.html) ao inves de utilizar uma URL do Dropbox (Ex.: http://dl.dropbox.com/u/5689841/equipe/index.html).O problema e que, em alguns ambientes de treinamento, o acesso a Internet e complicado, lento, restrito ou, no pior caso, tudo isto ao mesmo tempo. E, em situacoes onde utilizo distribuicoes Linux (Ex.: CentOS, Ubuntu) em que preciso baixar/instalar pacotes a partir da Internet, a adicao de um repositorio de pacotes local para ser acessado atraves do Apache instalado em meu MacBook e o que me salva.Sem fazer a configuracao de nenhum VirtualHost no Apache, para poder baixar um pacote do meu mirror CentOS via HTTP, o aluno utiliza uma URL como http://pj-macbookpro/~pj/CentOS/ (e simples habilitar o Web Sharing para ter esta URL funcionando rapidamente). Para isto, basta que o nome da minha maquina pj-macbookpro esteja configurado no arquivo /etc/hosts da maquina do aluno. Contudo, esta URL seria mais "bonitinha" se fosse http://centos.pj. Nao acha? ;) Entao, a solucao e a configuracao de um VirtualHost.Para que um aluno possa fazer uma URL como http://centos.pj ser acessivel a partir de sua maquina na rede sem que este nome esteja configurado num servidor DNS, alguns passos sao necessarios:O aluno precisa editar o arquivo /etc/hosts de sua maquina e informar o IP de minha maquina (pj-macbookpro) seu apelido e virtualhosts (pj e centos.pj). Exemplo:$ grep 'pj' /etc/hosts192.168.0.5 pj-macbookpro pj centos.pj curso-jboss.pjEu preciso ter virtual hosts configurados no Apache da minha maquina. Esta configuracao e apresentada entre as linhas 8 e 20 do arquivo /etc/apache2/users/pj.conf:$ sed -n '8,20p' /etc/apache2/users/pj.conf | cat -n 1 NameVirtualHost * 2 3 <VirtualHost *> 4 ServerName centos.pj-macbookpro 5 ServerAlias centos.pj 6 DocumentRoot "/Users/pj/Sites/CentOS" 7 <Directory "/Users/pj/Sites/CentOS"> 8 Options Indexes MultiViews FollowSymLinks 9 AllowOverride all 10 Order allow,deny 11 Allow from all 12 </Directory> 13 </VirtualHost>O Apache pode ser configurado de varias formas para suportar virtual hosts. Na configuracao que faco acima eu quero dizer que os hosts virtuais serao configurados atraves de nomes (linha 1) ao inves de IPs e que estou adicionando um host virtual cujo nome e indicado na linha 4. Este nome precisa estar configurado no arquivo /etc/hosts da minha maquina mas, o informado para ServerAlias (linha 5) nao precisa.Algumas outras formas de se configurar virtual hosts sao encontradas na documentacao do Apache e neste otimo artigo de Rich Bowen. Mas, para o meu caso, esta e suficiente. Outro virtual host que tenho configurado em meu arquivo e este:$ sed -n '21,$p' /etc/apache2/users/pj.conf | cat -n 1 2 <VirtualHost *> 3 ServerName curso-jboss.pj-macbookpro 4 ServerAlias curso-jboss.pj 5 DocumentRoot "/Users/pj/Sites/curso-jboss" 6 <Directory "/Users/pj/Sites/curso-jboss"> 7 Options Indexes MultiViews FollowSymLinks 8 AllowOverride all 9 Order allow,deny 10 Allow from all 11 </Directory> 12 </VirtualHost>Toda vez que eu altero alguma configuracao no Apache eu sempre me lembro de verificar se a configuracao esta OK com o comando abaixo:$ apachectl configtestCom as configuracoes do Apache OK e ele sendo executado, as seguintes URLs sao acessiveis