configurações do host virtual falham em vários sites

1

Editado (de novo): Eu pensei que uma instalação do apache2 no meu ubuntu os (pessoal) me permitiria "hospedar" sites internamente - sem entrar na web. Estou percebendo agora que os dois domínios que "trabalham" são realmente nomes de domínio registrados, os outros dois são nomes que pretendo registrar mais tarde, quando eu for viver. Mas a desconexão da Internet impede que até mesmo os dois primeiros domínios funcionem - embora eu saiba que eles estejam puxando seus arquivos do localhost.mysitename.com. O que está acontecendo aqui? Agora estou lendo em cima de / etc / host e etc / host.conf e etc / nsswitch.conf - estou indo na direção certa?

Eu reescrevi estas perguntas com mais informações. O problema persiste. Obrigado:

Como no mundo você pode ler atentamente os documentos do apache sobre a configuração do vHost , tente virtualmente cada mistura e ainda tem o cenário inicial, onde os dois primeiros vHosts e diretórios funcionam muito bem e, em seguida, cada um depois vem mal. "Bad Request" "Servidor não encontrado".

Aqui está o arquivo vHost básico (em / etc / apache2 / sites-available), replicado exatamente 4 vezes com apenas o "mysitename1" mudando, seu DocumentRoot e seu Directory mudando. BTW, esta versão está usando o IP localhost (127.0.0.1), mas eu usei *: 80 com os mesmos resultados.

<VirtualHost 127.0.0.1>
 ServerAdmin [email protected]
 ServerName localhost.mysitename1.com

 DocumentRoot /home/folder/folder/folder/folder
 <Directory />
  Options FollowSymLinks
  AllowOverride All
 </Directory>
 <Directory /home/folder/folder/folder/folder>
  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 "path to this site's error.log"

 LogLevel warn

 CustomLog "path to this site's access.log"

    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>

E dentro do ports.conf é isto: (Eu comecei com o *: 80 ao invés do 127.0.0.1) - os mesmos resultados descritos acima:

Listen 80
NameVirtualHost 127.0.0.1

Eu estou querendo saber sobre a sentença doc de: "Você pode colocar entradas em seu arquivo de hosts para testes locais, mas isso funcionará somente a partir da máquina com essas entradas de hosts." Isso é tudo o que estou tentando fazer, essencialmente um ambiente de desenvolvimento onde posso trabalhar em vários sites localmente. Não consigo encontrar esse arquivo "hosts", mas estou pensando se entrei nos meus dois primeiros domínios (há muito tempo) e esqueci como fiz isso. ??

Obrigado por qualquer ajuda.

    
por Ricalsin 17.01.2011 / 07:14

5 respostas

1

A resposta estava no arquivo / etc / hosts. Para descobrir endereços IP para nomes, o resolvedor DNS do sistema deve (deve) primeiro olhar para o arquivo / etc / hosts para name = ip, se não estiver lá, em uma pesquisa de DNS. Leia "man hosts" para ver a sintaxe do arquivo hosts. Atribuir todos os seus domínios (preferencialmente não FQDN) ao ip # do seu localhost (127.0.0.1) exemplo:

127.0.0.1 localhost.exmaplesite1.com
127.0.0.1 localhost.exmaplesite2.com

Use o localhost.examplesite1.com e localhost.examplesite2.com como seu ServerName na sua diretiva VirtualHost. Veja o link docs para outras configurações e sintaxe. @O uso anônimo de um curinga único não é documentado pelo Apache2 - mas ele não entendeu que eu estava tentando forçar certos nomes através de um loopback de localhost para que eu pudesse desenvolver aplicativos da web offline. Eu nunca entendi a suposição de @ Lynxman que um erro de "Pedido incorreto" ou "Servidor não encontrado" poderia gravar nos logs de erro para começar - embora eu estivesse usando arquivos de log separados para cada diretiva VirtualHost de qualquer maneira.

BTW: "sudo host localhost.examplesite.com" imprimirá o endereço IP do site IF 'examplesite.com' é um site real. Aparentemente, o comando "sudo host" NÃO procura as configurações / etc / hosts e influência sobre o IP. < - sim, eu sei, isso me ferrou bem.

aplausos!

    
por 18.01.2011 / 22:41
0

Você pode hospedar quantos hosts virtuais desejar no apache, isso parece que os nomes de host são muito semelhantes ou sobrepostos, ao criar um host virtual no apache, certifique-se de que

  • Ao usar hosts virtuais baseados em DNS, você sempre tem uma diretiva NameVirtualHost por IP e porta que está sendo veiculada
  • Certifique-se de que os nomes dos hosts virtuais não colidam, você sempre pode verificar em qual deles você está pousando, adicionando %V ao seu formato de log (para mostrar qual domínio está atingindo) ou ter um arquivo em cada VH declarando quem é
por 17.01.2011 / 09:37
0

Vou compartilhar minha configuração de trabalho com você.

Verifique se você vinculou seus hosts virtuais em sites habilitados . O Apache executa cada arquivo ativado para sites em ordem alfanumérica, então nomeie seu site padrão com algo como 0000-default para que ele seja executado primeiro. Este é o site que seus usuários devem ver quando a hospedagem virtual falhar. O meu parece assim:

NameVirtualHost *

    <VirtualHost *>
            ServerAdmin [email protected]

            DocumentRoot /var/www/0000-default-site
            <Directory />
                    Options FollowSymLinks
                    #AllowOveride set to All for mod rewrite (default None)
                    AllowOverride All
            </Directory>
            <Directory /var/www/0000-default-site>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
                    # Uncomment this directive is you want to see apache2's
                    # default start page (in /apache2-default) when you go to /
                    #RedirectMatch ^/$ /apache2-default/
            </Directory>


            ErrorLog /var/log/apache2/error.log

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

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


    </VirtualHost>

Observe a diretiva * NameVirtualHost **. É importante que esta seja a primeira diretiva nas configurações virtuais. Então você coloca no topo de 0000-default e garante que nada mais seja executado primeiro.

Em seguida, nomeie seu primeiro host virtual 0010-yourdomain.name e seu segundo 0020-another.name . É assim que meus virtuais parecem (note que eles são um pouco diferentes do padrão):

<VirtualHost *>
        ServerName www.lickmyquads.net
        ServerAlias lickmyquads.net
        ServerAdmin [email protected]

        DocumentRoot /var/www/lickmyquads.net/www/docroot
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/lickmyquads.net/www/docroot>
                Options FollowSymLinks
                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 info

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

        #Custom Error
        #ErrorDocument 404 /app/404.php
        #ErrorDocument 404;2 /app/404.php
        #ErrorDocument 404;3 /app/404.php

</VirtualHost>

Espero que este exemplo de trabalho ajude você a resolver as coisas. Se não tentar executar o comando apache2ctl configtest para ajudar a encontrar erros de sintaxe em sua configuração.

    
por 18.01.2011 / 02:51
0

"Servidor não encontrado" parece que seu arquivo host não está configurado corretamente. Conte-nos um pouco sobre a configuração do seu cliente; SO, navegador, arquivo de hosts, etc.

    
por 18.01.2011 / 02:56
0

Se você tiver vários clientes e não quiser manter arquivos host separados, poderá configurar um servidor DNS split horizon.

link

Não é tão difícil quanto parece e há vantagens em ter um servidor DNS de cache local.

    
por 21.01.2011 / 01:11