editando arquivos vhosts e hosts ubuntu do apache?

2

Acabei de instalar o Ubuntu (11.04).

Eu instalei o apache / mysql / php etc.

Eu tenho alguns sites em

/ var / www / site1
/ var / www / site2
/ var / www / site3

Eu quero poder acessá-los no link link
link

Então, no meu arquivo hosts eu tenho
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local

Então copiei /etc/apache2/sites-available/default 3 vezes.

então agora eu tenho
/ etc / apache2 / sites-available / site1
/ etc / apache2 / sites-available / site2
/ etc / apache2 / sites-available / site3

Tudo isso parece (com nomes de sitex apropriados)

<VirtualHost site1.local>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/site1
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/site1/>
        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>

No terminal, eu chamo

sudo a2ensite site1 site2 site3 && sudo /etc/init.d/apache2 reload

O que parece funcionar exceto que apenas um dos vhosts funciona ao mesmo tempo (incluindo o padrão), O que estou fazendo errado?

Quando eu executo o comando reload eu recebo
  • Reloading web server config apache2
    apache2: Could not reliably determine the server's fully qualified domain name,
    using 127.0.1.1 for ServerName
    [Fri Apr 15 10:45:27 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
    
por Hailwood 15.04.2011 / 01:19

3 respostas

2

Com base no seu arquivo hosts, você mapeia esta linha:

<VirtualHost site1.local>

para isso:

<VirtualHost 127.0.0.1>

O que você quer é:

<VirtualHost *:80>
    ServerName site1.somesite.com

Você também pode precisar de:

NameVirtualHost *:80

    
por 15.04.2011 / 02:40
2

Eu enfrentei o mesmo problema. Após várias tentativas e erros, corrigi o problema adicionando NameVirtualHost *:80 a sites-available/default . E removendo / não-adicionando a mesma linha em qualquer outro arquivo disponível em sites /

Eu não sei porque isso funcionou.

    
por 10.05.2011 / 15:48
1

A mensagem de erro de: "Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor ..." é um problema peculiar no servidor apache2 e não impediria ou impediria o servidor apache2 de "VirtualHost" local do seu "ServerName" . Leia o link que Shane Madden deu como a solução está lá. A outra mensagem "avisar" de: "NameVirtualHost *: 80 não tem VirtualHosts" impedirá que você tenha sucesso.

Problema 1: A solução para o FQDN é simples e as duas soluções parecem ter sucesso para usuários diferentes - assim como as duas: Adicione a seqüência de texto "ServerName localhost" (sem aspas) a um dos dois (ou ambos) de dois arquivos; o arquivo /etc/apache2/http.d.conf, que está em branco fora da caixa. E adicione-o na parte inferior do arquivo /etc/apache2/apache2.conf.

Problema 2: Lendo o manual você verá exemplos em várias configurações para o Apache2, mas a única coisa que você realmente precisa ter em mente é que a diretiva "NameVirtualHost" (que está localizada em /etc/apache2/ports.conf ) precisa ser EXATAMENTE o mesmo que você especifica na diretiva (localizada em etc / apache2 / sites-available / siteFile, onde "siteFile" é seu "site1", "site2" e "site3" no seu exemplo). Não use valores booleanos em um e um endereço IP estático ou um IP estático: Porta em outro. Depois de entender a gravidade desse relacionamento, a leitura do manual e a tentativa de suas configurações funcionarão.

Problema 3: O problema oculto: Conhecendo o Problema 2, você precisa garantir que isso não aconteça nos seus outros arquivos de site - ou seja, no seu arquivo padrão. Se o arquivo Padrão tiver um VirtualHost *: 80 e seu site1 tiver um VirtualHost 127.0.0.1 E seu ports.conf tiver um NameVirtualHost 127.0.0.1, então o site1 e o ports.conf estão em harmonia, MAS o padrão agora não é mais bom e será causar o erro.

Aguenta aí! Não é fácil ...

    
por 06.05.2011 / 06:59