Como configurar o Apache com o Passenger (mod_rails) no Mac OS X?

6

Sou desenvolvedor iOS, portanto, tenho muito pouca experiência com Apache e RoR, e é a primeira vez que estou tentando usar o Mac OS X como servidor.

O link recomenda o uso de Phusion Passenger (mod_rails) com o Apache. Então é isso que estou tentando realizar, mas cheguei a um beco sem saída.

Isso é o que eu fiz:

  1. Eu habilitei o Apache (caixa de seleção nas configurações) e apontando meu navegador para localhost me fornece o texto "It works!". Eu também posso acessá-lo através dos meus dyndns.

  2. Eu executei os seguintes comandos para instalar o passageiro:

    sudo gem install passenger
    passenger-install-apache2-module
    
  3. Eu adicionei as seguintes linhas a /etc/apache2/httpd.conf :

    LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
    PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.7
    PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
    
  4. Em seguida, adicionei o seguinte a /etc/apache2/extra/httpd-vhosts.conf :

    <VirtualHost *:80>
       ServerName my.dyndns.org
       DocumentRoot /Users/Shared/rails/project/public    # <-- be sure to point to 'public'!
       <Directory /Users/Shared/rails/project/public>
          AllowOverride all              # <-- relax Apache security settings
          Options -MultiViews            # <-- MultiViews must be turned off
       </Directory>
    </VirtualHost>
    
  5. Eu reiniciei o Apache usando:

    sudo /usr/sbin/apachectl restart
    

Eu tenho um aplicativo de trilhos de trabalho em /Users/Shared/rails/project , ou seja, executando rails server works. É apenas a "boa vinda a bordo, você está montando Ruby on Rails!" página, mas funciona.

O problema é que eu não descobri como acessar essa página através do Apache e do Passenger. Eu não sei como configurar um host virtual e mal sei o que é. Alguém pode me explicar o que estou fazendo de errado e como corrigi-lo?

EDIT: Só para ficar claro. Eu quero que my.dyndns.com/project esteja publicamente disponível na Internet. O que estou recebendo agora é "O URL / projeto solicitado não foi encontrado neste servidor".

EDIT 2: parece que não existem hosts virtuais:

$ sudo /usr/sbin/apachectl -S
VirtualHost configuration:
Syntax OK

Existe mais alguma coisa que precisa ser feita além de adicionar o host virtual em /etc/apache2/extra/httpd-vhosts.conf ?

    
por Erik B 05.07.2011 / 16:24

2 respostas

2

Recebi recentemente o famoso emblema de pergunta para essa pergunta, então achei que já era hora de postar a resposta. Vou postar as partes relevantes dos meus arquivos conf.

Então, em /etc/apache2/httpd.conf , tenho o seguinte:

LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.7
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

Também não esqueça de remover o comentário da seguinte linha:

Include /etc/apache2/extra/httpd-vhosts.conf

Em seguida, em /etc/apache2/extra/httpd-vhosts.conf , tenho o seguinte:

NameVirtualHost *:80

<VirtualHost *:80>
   ServerName example.dyndns.org
   DocumentRoot "/Users/Shared/rails/project/public"
   <Directory /Users/Shared/rails/project/public>
      AllowOverride all
      Options -MultiViews
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>

Depois de hoje não terei acesso a este servidor. Nós não usamos mais. Em vez disso, usamos Heroku . Então, se não está funcionando para você, por algum motivo, ou eu esqueci alguma parte vital da configuração, não serei capaz de ajudá-lo. Pode estar desatualizado e não sei se funciona com versões mais recentes do passageiro. Além disso, o servidor estava usando o Mac OS X Snow Leopard, por isso pode não funcionar com outras versões do OS X. No entanto, meu palpite é que ele não mudou muito e que a maior parte ainda é válida.

Eu também quero outro aviso. Esta pode não ser a configuração mais segura. Eu não entendo todas as opções, mas parece permitir muito. Eu tinha um colega me ajudando com a configuração e esta é simplesmente a primeira versão da configuração que nós temos trabalhando. Nós não nos importamos muito com a segurança, já que era apenas um servidor de desenvolvimento e não produção.

Se você tiver alguma sugestão sobre como melhorar a configuração, sinta-se à vontade para postá-las. Mesmo que eu não tenha nenhum uso para eles, outros ainda podem. Afinal, esta é uma pergunta popular.

    
por 10.08.2012 / 16:33
1

link

Eu tentaria fazer o download do Painel de Preferências do Passenger e usá-lo para configurar seu ambiente de desenvolvimento. Caso contrário, se você for realmente aventureiro, experimente o link . Eu uso o Pow para o desenvolvimento do Rails.

Se você for com o Pow, eu recomendo a jóia em pó junto com ela para gerenciar sua instalação do Pow. Deve ser tão simples como:

gem install powder

Que deve ser tudo o que você precisa fazer e, em seguida, ler sobre o pó aqui: link

    
por 05.07.2011 / 17:09