O Apache não funciona com vários sites na pasta www


1

Eu configurei o apache no meu servidor da web em casa; até agora, eu apenas executei um site nele e funcionou perfeitamente: eu simplesmente digitei meu nome de host em um navegador e meu site local seria exibido.

Agora eu preciso executar vários sites, por isso criei vários subdiretórios na /var/wwwpasta. Gostaria de continuar acessando-os, digitando meu nome de host, seguido de ae, em seguida /, o nome da subpasta. Eu tentei configurar diferentes hosts virtuais, adicionando estas linhas de código a cada host virtual:

ServerName hostname/site1
DocumentRoot /var/www/site1

mas sempre que digito hostname/site1, recebo a página de erro do apache e não a página inicial do site1.

Existe alguma outra linha de configuração que eu perdi?

Atualizar

Eu removi as novas linhas de configuração e levei os arquivos de configuração ao seu estado padrão, pois isso deve funcionar automaticamente sem nenhuma configuração específica. Ainda não consigo acessar as subpastas digitando hostname/site1.

Respostas:


1

A diretiva ServerName deve conter apenas um nome de host e uma porta. Uma barra para um subdiretório não faz parte de um nome de host.

No seu exemplo, eu suponho que você poderia ter algo a /var/www/site2, bem como /var/www/site1. Para essa implementação, você gostaria de ter:

ServerName hostname
DocumentRoot /var/www

Então você pode acessar http://hostname/site1ehttp://hostname/site2

Para obter subdomínios, é provável que você queira examinar Hosts Virtuais baseados em Nome . Geralmente, isso envolve coisas como subdomínio.hostname, ou seja, test.example.org, que pode apontar para / var / wwwtest e prod.example.org que pode estar em / var / wwwprod. Geralmente, você assegura que os subdomínios estejam em caminhos diferentes, para que você não possa acessar um site do outro.

Esta pergunta anterior possui um exemplo de implementação: Configure o Apache para servir vários subdomínios via HTTP + HTTPS


De alguma forma, eu esperava que o diretório ServerName funcionasse apenas com o nome do host + porta. Enfim, eu sei que da maneira como o configurei, ele deve funcionar sem nenhuma configuração específica, mas se eu o visitar hostname/site1, ainda recebo erro na página do apache não encontrado.
user1301428

Apenas visitar hostnamefunciona? Em caso afirmativo, quais são as permissões /var/www/site1? O usuário do servidor da web (provavelmente apache) precisará de pelo menos permissões de leitura.
Ernie

A visita hostnameparou de funcionar assim que adicionei subpastas. Antes disso, funcionou. As permissões sãodrwxr-xr-x
user1301428

Você está dizendo que o Apache parou de funcionar depois de adicionar subdiretórios ao seu DocumentRoot? Isso não faz sentido - isso significa que qualquer pessoa que adicione conteúdo a um site ficaria desapontada sempre que criar subdiretórios. O mais provável é que você modificou seus arquivos conf, criou um erro neles e, quando você reiniciou o Apache, tudo ocorreu. Restaure um arquivo conf bom conhecido ou tente descobrir onde está o erro nos seus arquivos conf.
Ernie

Eu não estou dizendo isso, eu estou dizendo que se eu visitar hostname/site1eu não vejo nada, mas se eu colocar esses conteúdos em /var/wwwe apontar meu navegador para hostname, vejo o website
user1301428

0

Hosts virtuais são úteis apenas ao configurar vários nomes de domínio (ou subdomínios). Aqui você deseja acessar seus sites com o mesmo endereço, provavelmente deseja configurar Alias. Além disso, se a pasta raiz do servidor da web apontar para /var/www, você não tem configuração: basta colocar suas páginas da Web em subdiretório, por exemplo, drupaldeve permitir que elas sejam acessadas poryour.domain.name/drupal


A configuração específica para isso é ServerAlias www.domain2.comassim por diante, uma por linha.
ionFish

Eu tentei isso também, mas ainda recebo o erro de não encontrar a página do apache.
user1301428
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.