Como servir o aplicativo Rails com o Passenger / Apache sem nome de domínio?

1

Estou tentando servir um aplicativo Rails usando o Passenger e o Apache em um servidor Ubuntu.

As instruções de instalação do Passageiro dizem que devo adicionar o seguinte ao meu arquivo de configuração do Apache - suponho que este seja /etc/apache2/httpd.conf.

<VirtualHost *:80>
   ServerName www.yourhost.com
   DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
   <Directory /somewhere/public>
      AllowOverride all              # <-- relax Apache security settings
      Options -MultiViews            # <-- MultiViews must be turned off
   </Directory>
</VirtualHost>

No entanto, eu ainda não tenho um domínio apontando para o meu servidor, então não tenho certeza do que devo colocar para o parâmetro ServerName. Eu tentei o endereço IP, mas quando eu faço isso, reiniciando o Apache dá

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Sun Jan 17 12:49:26 2010] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Sun Jan 17 12:49:36 2010] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

e apontando o navegador para o endereço IP dá um 500 Internal Server Error.

O mais próximo que eu tenho de algo sensato é com

<VirtualHost efate:80>
   ServerName efate 
   DocumentRoot /root/jpf/public
   <Directory /root/jpf/public>
      AllowOverride all
      Options -MultiViews
   </Directory>
</VirtualHost>

onde "efate" é o nome do host do meu servidor. Mas, agora, apontar meu navegador para o endereço IP do servidor apenas mostra uma página dizendo "Funciona!" - presumivelmente esta é uma página padrão, mas não tenho certeza de onde isso está sendo servido.

Eu posso estar errado em pensar que a razão pela qual eu fui incapaz de fazer isso funcionar está relacionada a não ter um nome de domínio. Esta é a primeira vez que utilizo o Apache diretamente - qualquer ajuda seria recebida com gratidão!

    
por grifaton 17.01.2010 / 19:10

4 respostas

1

Eu me encontro nessa situação antes de fazer uma migração de servidor.

No servidor final eu configuro o servidor corretamente, e então localmente eu uso o rubygem 'fantasma' para modificar meus hosts (bem o equivalente do OS X), então eu posso testar tudo está correto antes de inverter o DNS

    
por 07.05.2010 / 08:14
0

Você tem algumas opções. Primeiro, você pode simplesmente navegar até o nome do seu servidor, por exemplo: link ? Se sim, você está pronto.

Como alternativa, você pode usar as configurações de host padrão do apache.

Algo como isso deve funcionar para você:

<VirtualHost *:80>
      ServerName _default_
      DocumentRoot /root/jpf/public
</VirtualHost>

Por fim, você pode configurar um domínio em seu arquivo de hosts locais e apontá-lo para o IP do seu servidor e usar esse domínio para atingir o servidor.

    
por 17.01.2010 / 19:43
0

Eu meio que tive um problema semelhante com meus trilhos, exceto que, neste caso, eu não precisava de um nome de domínio. O que eu fiz foi configurar meu vhost em uma porta diferente:

<VirtualHost *:1234>
   ServerName domain.com
   RailsEnv development
   DocumentRoot /path/to/app/public
   <Directory /path/to/app/public>
      AllowOverride all
      Options -MultiViews
   </Directory>
</VirtualHost>

Em seguida, configure o apache para ouvir essa porta:

Listen 1234

Isso funcionou para mim.

    
por 18.01.2010 / 00:19
0

As versões do Ubuntu que eu tenho usado têm os arquivos de configuração do servidor virtual em / etc / apache / sites-enabled. Eu suspeito que a página "Trabalha" está sendo servida a partir de / var / www / htdocs e está especificada no arquivo / etc / apache / sites-enabled / 000-default. Depois de editar este arquivo de configuração, você poderá acessá-lo usando apenas o nome da máquina.

    
por 07.06.2011 / 04:24