Por que hosts virtuais Apache no Ubuntu 14.04 não estão funcionando?

23

Eu instalei o Apache 2.4 no Ubuntu 14.04 e ele estava funcionando bem por http://localhost/endereço. Porém, quando tentei adicionar um novo host virtual, por exemplo, http://bow.loce reiniciar o apache, o novo endereço não estava disponível http://bow.loce disponível http://localhost.

Minha configuração é:

<VirtualHost *:80>
    ServerName www.bow.loc
    ServerAlias bow.loc
    DocumentRoot /var/www/html/bow/web

    <Directory /var/www/html/bow>
        AllowOverride All
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </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
</VirtualHost>

Como posso obter meu site http://bow.loc?

Victor Bocharsky
fonte
Relacionados: askubuntu.com/a/362992/8698
Dan
Confira minha resposta aqui . Tem um problema semelhante e acaba sendo o problema com a configuração do DNS do sistema.
jmarceli

Respostas:

29

Desde o Apache 2.4, cada arquivo de host virtual deve ter a extensão .conf.

Você pode renomear cada arquivo do host virtual para incluir a extensão .conf:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

Use o comando a2ensite para adicionar o host virtual:

a2ensite example.com.conf

E recarregue o Apache:

service apache2 reload
Ari Pratomo
fonte
Obrigado! E após essas ações, não preciso modificar manualmente o /etc/hostsarquivo e adicionar hosts a ele? O apache escreverá novos hosts automaticamente?
Victor Bocharsky
O Apache não escreve novos hosts automaticamente, você deve escrevê-lo manualmente. CMIIW
Ari Pratomo
Então, minha configuração é certo, e problema, a fim de que eu esqueci de acrescentar anfitrião em/etc/hosts
Victor Bocharsky
Outra maneira é modificar o apache2.conf e remover a extensão ".conf" da diretiva "IncludeOptional sites-enabled / *". Eu uso domínios de sites como nomes de arquivos, por isso não gosto do requisito extra ".conf".
Lepe
17

Esqueci de adicionar host em /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

Eu pensei que o apache faz isso automaticamente.

Victor Bocharsky
fonte
Eu nunca tive que fazer isso em nenhum servidor antes. Eu faço isso do cliente para fins de teste o tempo todo. Você pode esclarecer o que está dizendo aqui?
Flickerfly
@flickerfly O que você quis dizer? Fiz meus pontos VirtualHosts à minha máquina local para tratá-los com instalado Apacheservidor
Victor Bocharsky
Eu esqueci de adicionar isso também! : P
Rishi Kulshreshtha
Droga, eu desperdicei um disso em uma VM Debian 8! Obrigado!!!
lucaferrario
@lucaferrario haha, eu também. Bugs simples difíceis de revelar;) De nada!
Victor Bocharsky
3

Bem, eu tenho tentado todas essas soluções oferecidas .. mas, infelizmente, nada funcionou! Infelizmente eu editei

    /etc/hosts

fazer entrada

    127.0.1.1 example.com test.com

e funcionou !!

(Desculpe se não estou falando muito tecnicamente!)

Vineeth Vijayan
fonte
1

Eu escrevi um script python que automatizará as etapas de criação do host virtual apache ... este vídeo explica como fazer o download / código no GitHub

rakibtg
fonte
-3
Options FollowSymLinks MultiViews

Precisa de char '+': + FollowSymLinks + múltiplas visualizações

Order allow,deny
Allow from all

Now = Exigir tudo concedido

Valentin
fonte
Por favor, explique onde colocar e o que faz. Não basta publicar comandos ou artefatos de configuração. Consulte Como escrevo uma boa resposta?
David Foerster
1
Você só precisa colocar um + ou - antes das várias opções se estiver usando um - para excluir um. Caso contrário, eles são bons para ir. Necessário, todos os concedidos são para o Apache 2.4. As linhas Order, Allow são uma sintaxe 2.2.
Flickerfly