Não consigo usar o Ruby on Rails + Passenger + Apache para trabalhar

1

Me desculpe se essa é uma pergunta estúpida, mas não consigo usar o Ruby on Rails para trabalhar no meu servidor Apache. Estou usando o Phusion Passenger (mod_rails, mod_rack) para a implantação de aplicativos. Aqui está o meu código de configuração específico do RoR no arquivo de configuração do Apache do meu site:

Alias /rails /var/www/syyborg.com/ruby/blog/public
<Directory /var/www/syyborg.com/ruby/blog/public>
     Options FollowSymLinks
     AllowOverride None
     Order Allow,Deny
     Allow from All
</Directory>
RailsBaseURI /rails

Mais uma vez, eu realmente tenho muito pouco conhecimento sobre esse tipo de coisa; Eu nunca configurei um servidor do zero antes. De qualquer forma, meu aplicativo de trilhos, como você pode ver, está localizado em /var/www/syyborg.com/ruby/blog/ . Eu estou tentando acessá-lo de http://[my domain, syyborg.com]/rails . No entanto, quando tento carregar o site, recebo um erro "403 Proibido". Qualquer ajuda seria muito apreciada, e eu posso fornecer mais detalhes se eles forem necessários. Obrigado antecipadamente!

    
por Luke Crowe 12.04.2011 / 18:41

3 respostas

1

Se mod_rails estiver instalado corretamente & carregada, a única configuração que você precisa no apache é apontar a raiz do documento para a pasta pública. mod_rails é inteligente o suficiente para perceber de onde vem o resto. no apache: o diretório < Diretório > statement refere-se ao local físico do arquivo, e não ao caminho percebido. Isso deve também ser sua pasta pública para seu aplicativo rails.

ou seja,

<Directory /var/www/syyborg.com/ruby/blog/public>
     Options FollowSymLinks
     AllowOverride None
     Order Allow,Deny
     Allow from All
</Directory>

e seu RailsBaseURI deve ser o caminho que você deseja usar.

ou seja,

RailsBaseURI "/rails"

Sua declaração de alias parece boa.

    
por 12.04.2011 / 19:08
1

Parece que o mod_rails não está instalado. Supondo que você tenha isso:

gem install passenger

e

passenger-install-apache2-module

Tente ver se você pode iniciar o passageiro sozinho assim:

cd /path/to/your/webapp
passenger start
    
por 07.07.2011 / 03:37
0

O Passenger usa alguma mágica do sistema de arquivos para encontrar os aplicativos reais do Rails. Todas as suas ações são baseadas no DocumentRoot de seu host virtual.

Basicamente, o passageiro precisa de duas configurações definidas:

  1. Ele precisa saber qual caminho da URL deve ser um aplicativo de trilhos. Isso é feito definindo o valor RailsBaseURI em sua configuração do Apache.
  2. Ele precisa saber onde o aplicativo Rails está localizado no sistema de arquivos. Aqui, ele usa uma abordagem bastante especial. Ou seja, um link simbólico apontando para o diretório público do seu aplicativo de trilhos (não o RAILS_ROOT ). Este link simbólico precisa estar dentro do diretório DOCUMENT_ROOT .

Portanto, supondo que seu DocumentRoot seja /srv/www , você precisa criar o seguinte link simbólico:

ln -s /var/www/syyborg.com/ruby/blog/public /srv/www/rails

Observe que é considerado uma boa prática NÃO colocar seu aplicativo rails dentro do DOCUMENT_ROOT . Além disso, o Passenger não suporta o módulo VirtualDocumentRoot atualmente.

Para mais informações, consulte a respectiva seção da documentação do Passenger .

    
por 12.04.2011 / 21:42