CentOS vhosts causando problemas com o comando Vagrant Share

1

Estou executando o Vagrant no meu Mac. Eu tenho uma caixa do CentOS 6.4 rodando com o provedor do VirtualBox e o fantoche (não importante neste contexto). Este é um Vagrantfile básico para mostrar o problema que tenho:

Vagrant.configure("2") do |config|

    # centos box information
    config.vm.box = "nrel/CentOS-6.5-x86_64"

    config.vm.hostname = "devbox.loc"
    config.vm.network "forwarded_port", guest: 80, host: 8080
    config.vm.network "private_network", ip: "192.168.10.187"
    config.vm.network "public_network"

end

Eu tenho algumas configurações vhosts que estou acessando em URLs como devsite.loc e othersite.loc, modificando o arquivo de hosts no meu Mac com o IP da rede privada. Isso tudo funciona como esperado e posso acessar cada um desses vhosts por meio de seus endereços, vendo o site correto.

O arquivo vhost básico é assim:

<VirtualHost *:80>
        DocumentRoot /home/devsite/public_html
        ServerName devsite.loc
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /home/othersite/public_html
        ServerName othersite.loc
</VirtualHost>

No entanto, se eu tentar executar vagrant share , ele falhará com este erro:

default: Local machine address: 192.168.10.187

/opt/vagrant/embedded/lib/ruby/2.0.0/net/http.rb:878:in 'initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)

Se eu remover o arquivo vhosts, o compartilhamento vagante funcionará, compartilhando a página padrão do Apache. Algo sobre vagrant share claramente não gosta de algo sobre o meu arquivo vhosts, mas não tenho ideia do que possa ser.

FWIW Estou usando as versões mais recentes do Vagrant e do Virtualbox.

    
por robjmills 29.04.2015 / 10:36

1 resposta

1

Acontece que o problema aqui foi realmente o site dentro do vhost. Ele continha um .htaccess que adicionou um prefixo www. a URLs com várias exceções de nome de domínio (incluindo qualquer nome de domínio terminado em .loc). O fato de que vagrant share tentou se conectar via http usando o endereço IP em vez de um nome de domínio, essa regra foi acionada e parece que o redirecionamento para www.192.168.10.187 causou o erro ruby, pois essa era uma URL inacessível. Em suma - meu mal.

    
por 30.04.2015 / 12:40