09
mar

Criando um servidor virtual (virtual host) com Apache 2 no Linux

Olá a todos!


Para esse post vou usar o Ubuntu e Apache 2 como base.


Vamos criar um servidor virtual para que você não precise acessar “http://localhost” quando estiver desenvolvendo, o que organizará seu desenvolvimento em URL’s.


Como nosso primeiro passo, devemos acessar seu root configurado no Apache, no meu caso, “/home/pedro/www”.


Com o root aberto você deve criar uma pasta, que será o root do site que será desenvolvido, vou usar como exemplo, o nome “exemplo”, ou seja, a pasta que será criada ficará como “/home/pedro/www/exemplo”.


Com a pasta criada, você deve configurar o site, use os comandos abaixo no seu terminal.


cd /etc/apache2/sites-available

sudo nano exemplo

Assim que abrir o nano, digite o seguinte conteúdo, mas mudando para os nomes do seu site.


NameVirtualHost *
<VirtualHost *>
	ServerAdmin exemplo@exemplo.com.br

	DocumentRoot /home/pedro/www/exemplo
	ServerName www.exemplo.com.br
	ServerAlias exemplo.com.br *.exemplo.com.br

	<Directory />

		Options FollowSymLinks
		AllowOverride All
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">

        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Pressione “ctrl+x” e confirme que quer salvar pressionando “y”.


Agora passamos seu novo site para o Apache como um site ativo, para isso entre na pasta sites-enabled.


cd /etc/apache2/sites-enabled

Crie um link do arquivo que acabamos de criar.


sudo ln -s /etc/apache2/sites-available/exemplo exemplo

Pronto, seu site está ativo no Apache, porém ainda não pode ser acessado pela url sem o “localhost”.


Agora no terminal digite.


cd /etc

sudo nano hosts

No começo do arquivo, adicione a linha:


127.0.1.1       exemplo.com.br

Pressione “ctrl+x” e confirme que quer salvar pressionando “y”.


Agora basta reiniciar o Apache com o seguinte comando.


sudo /etc/init.d/apache2 reload

Perfeito! Agora sua área de desenvolvimento pode ser acessada abrindo o browser e digitando a URL “http://exemplo.com.br”.


Daqui para a frente, quando você acessar “http://www.exemplo.com.br” você estará acessando seu servidor na internet, e quando acessar “http://exemplo.com.br” estará acessando seu servidor local, na pasta do site que está desenvolvendo.


Utilizo essa técnica para me organizar e facilitar o desenvolvimento, pois não preciso utilizar uma pasta a mais na URL, como, nesse caso, seria “http://localhost/exemplo”.


Espero que gostem da dica.


Abraços!

40 comentários para “Criando um servidor virtual (virtual host) com Apache 2 no Linux”

  1. Danilo disse:

    você não pensa em escrever sobre história?

    Responder

  2. Pedro Teixeira disse:

    Olá Danilo,

    Obrigado pelo comentário!

    Por enquanto só se for história da informática, o que você acha?

    Abraços!

    Responder

  3. Maiden disse:

    kkkkkkkkkkkkkkkkkkkkkkkk

    Responder

  4. Anderson disse:

    Olá Pedro Teixeira eu queria saber se vc pode me ajudar a criar um virtual host no meu pc eu uso Windows xP. será que isso é possivel? se for possivel e se vc puder me ajudar eu vou ficar muito grato!!

    caso se interece em me ajudar me add. ai
    anderson_3002@hotmail.com

    vlw

    Responder

    Alexsander Talles respondeu:

    @Anderson, procure sobre IIs e Virtual Hosts, vc terá um trabalhinho, para por o php no Windows mas é possivel.

    Responder

  5. Pedro Teixeira disse:

    Olá Anderson

    Infelizmente não sei te ajudar a criar um Virtual Host no Windows, na verdade nem sei se é possível.

    Se tiver novidades poste por aqui.

    Abraços!

    Responder

  6. Anderson disse:

    Olá eu de volta!!
    viu eu estava pesquisando sobre o assunto e achei. mas la esta mal esplicado nao estou entendendo direito! da uma olhada neste site aonde eu vi so o <virtual host> no apache.

    http://forum.wmonline.com.br/lofiversion/index.php/t54912.html

    de uma olhada ai neste link ai tem um cara que consiguiu criar um Virtual Host no Windows xP usando o Apache.
    tenta ver se vc consegue entender, é claro se quiser neh!

    Obrigado

    Responder

  7. Pedro Teixeira disse:

    Ola Anderson,

    Me desculpe, não entendo dessas configurações do Windows e também não tenho uma área pronta para testes aqui.

    Mas pelo que vi a solução dada no forum funcionou, você testou?

    Abraços!

    Responder

  8. Funcionou de boa mano..

    Muito obrigado pela dica..

    Responder

    Pedro Teixeira respondeu:

    @Eduardo Jr. – EduardoSISTEC,

    Obrigado!

    Responder

  9. antoniosousa disse:

    gostei, muito bom!
    gostaria que vc explicasse os parametros de configuração dos aquivos: smb.conf, os do apache2 (todos para a criação de um servidor prox,), alem dos arquivos de ferewall, dns, dhcp e proftp.
    obrigado!

    Responder

    Pedro Teixeira respondeu:

    @antoniosousa,

    Me desculpe mas não é minha especialidade, sugiro dar uma googlada nesses assuntos.

    Abraço!

    Responder

  10. Fala Pedrão blz,

    cara so uma observação falta um “:80″ depois do <VirtualHost *, ficaria assim:

    " …. ”

    o apache as vezes reclama quando não tem a porta

    muito bom o post !

    abraços

    Responder

    Guilherme Sanches respondeu:

    @Guilherme Sanches, <VirtualHost *:80 …….. o editor corto!

    Abraços

    Responder

    Pedro Teixeira respondeu:

    @Guilherme Sanches,

    Valeu a dica!

    Responder

  11. Nildo disse:

    Olá, estou com dificuldades na prova de serviços de rede, gostaria de saber como faço para criar um virtual host utilizando o sarg.

    Favor mandar um e-mail para: xxxxx

    Responder

    Pedro Teixeira respondeu:

    @Nildo,

    Me desculpe, não sei como ajudá-lo.

    Abraço!

    Responder

    Paulo respondeu:

    @Pedro Teixeira, favor remover este post, foi usado meu e-mail sem autorização.

    Responder

    Pedro Teixeira respondeu:

    @Paulo,

    Email removido do comentário.

    Abraço!

    Responder

  12. Alysson disse:

    Eu li em algum lugar que a tag “” deve conter o caminho completo para o local, como “/var/www” mesmo…
    mas isso quer dizer que está indicando a raiz do sistema? ou nesse caso é relativo ao DocumentRoot ?

    Responder

    Pedro Teixeira respondeu:

    @Alysson,

    A tag que você se referiu não chegou, acredito que foi barrada pelo sistema de comentários. Tente dar um espaço no meio dela.

    Abraço!

    Responder

    Alysson respondeu:

    @Pedro Teixeira,
    ah, que descuido ^^

    estava me referindo assim:

    eu li que nesse Directory, devemos colocar o caminho completo do local…
    como em , então, quando tem o / sozinho, ele se refere ao diretório raiz ou se é relativo ao DocumentRoot?
    o que eu li não eh verdade e que podemos colocar colocar endereços relativos ali?

    Responder

    Pedro Teixeira respondeu:

    @Alysson,

    O sistema de comentários do wordpress corta tags HTML ou de outras linguagens de programação.

    Me envie um email que tento te ajudar.

    http://www.pteixeira.com.br/contato/

    Abraço!

    Responder

  13. matheus disse:

    oque é nano?

    Responder

    Pedro Teixeira respondeu:

    @matheus,

    É um editor, como o vim.

    Abraço!

    Responder

  14. Cara, muito obrigado, valeu pelo post
    Procurava fazer isto, mas so via posts antigos.
    Valeu, ajudou muito!

    Responder

    Pedro Teixeira respondeu:

    @Hugo Sousa Junior,

    Valeu pela visita!

    Responder

  15. Marcio disse:

    Pedro vc esta de parabéns sou iniciante em linux criei no Debian e deu certo.Valeu pela dica.E so aproveitar galera

    Responder

    Pedro Teixeira respondeu:

    @Marcio,

    Obrigado!

    Responder

  16. Lucas disse:

    ola pedro, tu manja de linux, eu não rsrsrs. eu estou tentando atraves do centOS 5.6 criar meu site apache, blz ja instalei o, httpd do centos “yum install httpd” blz, instalei também o php. ai eu entro no diretorio /var/www/html/ e jogo os arquivos do meu site lá dentro, só que quando vou abrir, apenas aparece uma tela de boas vindas do centOS, no lugar de aparecer o meu site =/, você sabe como fazer meu site aparecer no lugar dessa imagem?

    veja a imagem: http://i53.tinypic.com/fw51yw.png

    desde ja agradeço kra

    abrass

    Responder

    Pedro Teixeira respondeu:

    @Lucas,

    Quando você acessa http://127.0.0.1/index.php qual o resultado?

    Abraço!

    Responder

    Lucas respondeu:

    @Pedro Teixeira, ai aparece o site o index do site, mais não seria para aparecer altomatico sem precisar do /index.php?

    abrass, será que tu poderia me add no msn, só pra tu me ensinar isso?

    lucasaaaaaaa@hotmail.com = msn

    costa535 = skype

    brigadão pela atenção amigo

    Responder

    Pedro Teixeira respondeu:

    @Lucas,

    Você vai ter que configurar o Apache para usar o index.php como index.

    Tente apagar o arquivo index.html da pasta, pode ser que funcione.

    Abraço!

    Responder

    Lucas respondeu:

    @Pedro Teixeira, mais não tem nenhum index.html na pasta
    =/, a pasta html estava vazia, não tem q linkar nada?

    será que não teria como tu me add no msn ou skype msm?
    tenhu uns negoco pra tu ver sobre linux.

    vlw, abras

    Responder

    Pedro Teixeira respondeu:

    @Lucas,

    Como está vazia? Seu site não está nela?

    Na pasta em que você colocou seu site, tente apagar o index.html.

    Se quiser fechar um pacote de consultoria entre em contato: http://www.pteixeira.com.br/contato/

    Abraço!

  17. Alexsandro disse:

    Valeu! Funcionnou com uma resalva.

    NameVirtualHost * //apaguei essa linha
    02 // adicinei a porta aqui

    Responder

  18. minha duvida é a seguinte qual das versões do linux e a melhor para trabalhar com magento num servidor local no caso meu computador ,espero sua resposta para que eu possa começar . Desde ja agradeço;.

    Responder

  19. Olá, com essa configuração vc consegue acessar seu site através da Internet? Isto é, fora da sua rede local?

    Eu tenho um sistema web rodando no Apache Tomcat 7 (na minha rede local), gostaria de acessar esse sistema web, através da 3g do meu smartphone, tem como eu fazer isso com uma configuração similiar no apache2?

    Estou tentando achar uma solução para isso, mas está meio complicado.

    Responder

    Pedro Teixeira respondeu:

    A configuração não muda, mas você vai precisar de um IP fixo ou de um de serviço de domínios para IP dinâmico. Assim é só usar um DNS ou configurar seu /etc/hosts para acessar de fora da rede local.

    Responder

Deixe um comentário