Ajuda para executar vários sites no apache2

2

Apache newb aqui. Eu li alguns tutoriais e não tenho certeza do que estou fazendo de errado.

Eu tenho meu site padrão ativado e esse funciona bem:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </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 ${APACHE_LOG_DIR}/error.log

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

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    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>

Então, eu queria adicionar um segundo site, www.example.com. Atualizei meu arquivo de hosts:

192.168.1.148   sam-NV53    # Added by NetworkManager
127.0.0.1   localhost.localdomain   localhost
::1 sam-NV53    localhost6.localdomain6 localhost6
127.0.1.1   sam-NV53
www.example.com localhost.localdomain localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

E eu defini meu novo site

<VirtualHost *>
    ServerAdmin [email protected]
    ServerName www.example.com
    ServerAlias example.com

    DirectoryIndex index.html
    DocumentRoot /var/www/
</VirtualHost>

Como o DocumentRoot do meu novo site é o mesmo do meu site padrão, esperaria ver o index.html do meu site padrão. Mas, em vez disso, vejo o example.com da web. O que estou perdendo aqui?

Editar

Aparentemente, ninguém notou que minha entrada no meu arquivo hosts está invertida. Eu mudei para:

127.0.0.1 geekspeak.dev

Agora funciona. Obrigado a todos pela sua contribuição:)

    
por Samo 11.09.2011 / 03:10

4 respostas

1

o que quer que esteja na sua

<VirtualHost>

deve corresponder ao que você listou para

 NameVirtualHost

Então, se você tiver

 NameVirtualHost *:80

Todas as entradas do seu virtualhost para a porta 80 devem ser semelhantes a

<VirtualHost *:80>

Então mude * para *: 80 como está no seu primeiro exemplo e ele deve ir para o lugar correto

    
por 11.09.2011 / 05:31
0

Tente usar algo diferente de example.com, www.example.com ou outros derivados. Esses nomes são reservados pela IANA para uso na documentação. Eu usei meu próprio servidor Apache para tentar configurar um host virtual em www.example.com e SEMPRE fui redirecionado para a página da IANA, mas depois mudei para www.someserver.dev e estava tudo bem.

Melhor da sorte

    
por 11.09.2011 / 03:42
0

Algumas coisas que você pode tentar:

  1. Como os rjacks mencionados, não use example.com para o nome do seu site.
  2. Não adicione uma entrada ao seu arquivo hosts . Isso pode ser útil em alguns casos, mas não vejo como isso é necessário neste caso.
  3. Atualize seu DNS para apontar o novo nome do servidor para o IP do servidor da web. Por exemplo, se você possui somesite.com , você pode criar livremente um subdomínio test.somesite.com ou qualquer outro número, conforme desejado.
  4. Certifique-se de reiniciar o Apache após qualquer alteração no arquivo de configuração.
  5. Eu serviria o novo site para outro diretório que não o site padrão, pelo menos temporariamente, para confirmar qual VirtualHosts estava correspondendo e servindo.
por 11.09.2011 / 05:02
0

Eu tentei isso usando o VirtualBox. Sistema operacional do host - Win7, sistema operacional convidado - servidor Ubuntu.

1) crie www.yourdomain.com em / etc / apache2 / sites-available /

<virtualhost *:80> # i recommend adding your interface IP here
    ServerAdmin [email protected]
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com
    DirectoryIndex index.html
    DocumentRoot /var/www/main/htdocs
    LogLevel warn
    ErrorLog /var/www/main/logs/error.log
    CustomLog /var/www/main/logs/access.log combined
</virtualhost>

2) crie diretórios dentro de / var / www

mkdir -p /var/www/main/htdocs
mkdir -p /var/www/main/logs

modificar permissões para esses diretórios

3) habilitar site no apache2

a2ensite www.yourdomain.com

4) edite / etc / apache2 / sites-available / default e remova todas as linhas entre o DocumentRoot e a última linha.

5) reinicie ou recarregue o apache2

6) edite o seu arquivo hosts www.yourdomain.com e depois experimente.

Isso funcionou no meu servidor de teste.

    
por 11.09.2011 / 05:59