Apache localhost e vhosts

3

Eu tenho o Apache 2.2 instalado no Windows, a pasta que serve todos os meus sites é:

C:\Users\GSTAR\Documents\Web Sites

Dentro desta pasta existem subpastas para cada site

No momento, acesso a esses sites no meu servidor navegando para http://localhost/site1 , http://localhost/site2 , etc.

O problema que tenho agora é que alguns sites têm caminhos de URL relativos, e isso causa problemas, pois os recursos não são encontrados (ele tenta procurar na pasta raiz).

Eu particularmente não quero usar URLs absolutos. Eu dei uma olhada nos vhosts, pois isso pode ser uma solução. Mas estou tendo alguns problemas com isso.

Eu desejo continuar usando as mesmas URLs para acessar os sites - no entanto, alguns dos tutoriais que eu li sugerem a utilização de uma convenção de site.local , mas eu preferiria não fazê-lo.

Alguém tem alguma sugestão de como fazer isso funcionar?

    
por GSTAR 05.12.2011 / 18:45

3 respostas

0

A maneira ideal de lidar com isso é criar vários vhosts - um para cada site. Pode valer a pena fazer uma penalidade única ao alterar URLs e mudar a maneira como você está acostumado a acessá-los. Isso definitivamente vai poupar muito tempo & problema se você continuar usando essa configuração para vários projetos. Isso parece uma configuração de desenvolvimento, por isso também ajuda a imitar o comportamento de produção.

    
por 05.12.2011 / 18:53
0

Provavelmente você está procurando por algo como mod_rewrite link com RewriteBase.

    
por 07.12.2011 / 09:27
0

Estou com skjaidev nesse assunto. A maneira melhor e mais fácil para você, deve ser configurar vhosts. O que é bastante simples. Tudo o que você precisa fazer é:

1. Desative as diretivas ServerRoot e DocumentRoot no httpd.conf (ou apache.conf , ou no entanto o arquivo de configuração principal é chamado em seu sistema). Desativar significa excluir a linha ou, de preferência, colocar um '#' na frente dela.

2.) Desative o contêiner <Directive...> correspondente. Você pode encontrá-los como eles têm o mesmo caminho que o seu DocumentRoot .

Esses dois passos não são necessários, mas eu faço assim por alguns motivos

3.) Inclua um novo arquivo chamado vhost.conf ou use o oferecido pela sua instalação. Você pode conseguir isso adicionando a seguinte linha no seu httpd.conf

Include "C:\Path\to\apache2\confdir\vhost.conf"

4.) Adicione NameVirtualHost *:80 sobre o vhost.conf (exatamente uma vez) com 80 sendo a porta que você deseja que o apache ouça

5.) Adicione um contêiner <VirtualHost ...> como este.

<VirtualHost *:80>
   ServerName site1.local
   DocumentRoot "C:\Users\GSTAR\Documents\Web Sites\Site1\"
   DirectoryIndex index.html index.php 
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>

   <Directory "C:\Users\GSTAR\Documents\Web Sites\Site1\">
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>

Esta é apenas uma configuração de exemplo. Você tem que ajustar isso para atender às suas necessidades.

6.) Adicione quantos contêineres <VirtualHost ...> no estilo acima, como você deseja. Basta ajustar as diretivas DocumentRoot e Directory

7.) Para tornar o trabalho site1.local e site2.local , você terá que editar o arquivo hosts ou modificar o servidor DNS local. Caso você esteja usando o Windows 7, você pode acessar este arquivo clicando com o botão direito do mouse no seu editor preferido e iniciá-lo com direitos de administrador. Se você não fizer isso, não poderá editá-lo. Agora você o abre navegando até C:\Windows\system32\drivers\etc\hosts

Se precisar de mais ajuda, deixe um comentário.

    
por 07.12.2011 / 10:13

Tags