Rails app (Redmine) no Passageiro de Phusion

1

Eu instalei o mod_passenger para o Apache na minha caixa Linux. O módulo compilou corretamente e o Apache parece estar carregando-o corretamente (sem erros com este lado das coisas).

Quando eu configuro um vhost para apontar para um aplicativo Rails (gerenciamento de projeto Redmine), recebo uma página que reclama sobre "O aplicativo Ruby on Rails não pôde ser iniciado". Especificamente, "Mensagem de erro: Nenhum arquivo ou diretório - config / environment.rb".

Eu posso ver que existe de fato um config / environment.rb na pasta raiz Redmine. Minha configuração vhost é assim:

<VirtualHost *:80>
# server DocumentRoot, address, and admin email

RailsBaseURI /redmine
DocumentRoot /srv/www/htdocs

</VirtualHost>

Eu tenho a fonte Redmine em / srv / www / htdocs / redmine (sem links simbólicos ou qualquer coisa porque estava reclamando disso).

Em um ataque de raiva porque nada estava funcionando, eu recursivamente defini a propriedade do arquivo e o modo da pasta / redmine para wwwrun: www (meu usuário e grupo Apache) e 777. Você acha que esse é o problema?

Qualquer ideia ou conselho muito apreciado.

PS. Existem projetos para reescrever Redmine em PHP? LOL!

    
por Dougal 12.05.2011 / 10:02

2 respostas

1

Recebi o mesmo erro e este link ajudou-me a resolver isso!

While trying to setup Redmine in a sub-uri I run across an issue will trying to setup apache. Passenger would display the following error: No such file or directory – config/environment.rb while trying to access the Redmine webpage.

After trying a few suggestions on the issue I managed to get Redmine to work with the following configuration:

The passenger.load configuration file was the following (the paths will probably vary depending on the installation):

LoadModule passenger_module /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.9
PassengerRuby /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby
PassengerDefaultUser www-data

In the Virtual Host configuration I added the following:

PassengerAppRoot /usr/local/lib/redmine-1.2/
RailsBaseURI /redmine
RailsEnv production

PassengerAppRoot represents the path that redmine is installed.
RailsBasedURI represents the sub directory in the URL that represents Redmine eg. http://www.example.org/redmine

(for this to work is also essential to have a symbolic link of the redmine-./public inside the web root folder).

Also I changed ownership of the redmine-1.2 folder and the symlink redmine folder to the apache user/group (I am under the impression that it was necessary).

    
por 20.01.2012 / 13:44
0

O modo de implantação para implantações sub-URI de passageiros é bastante específico.

Você tem para criar links simbólicos. Estes devem apontar para o diretório public (não o RAILS_ROOT ). O passageiro usa as informações desse link simbólico para encontrar o restante do aplicativo. Isso é para garantir que você nunca instale seu aplicativo Rails dentro da raiz do documento (o que você nunca deve fazer para evitar que seu código e configuração fiquem visíveis para qualquer pessoa).

No seu caso, isso significaria instalar o Redmine em algo como /srv/www/redmine . Então crie um symlink

ln -s /srv/www/redmine/public /srv/www/htdocs/redmine

Com isso, você pode manter seu host virtual como está, supondo que o usuário do seu servidor da Web tenha o direito de ler todos os arquivos dentro de /srv/www/redmine/public . Como dica final: verifique o proprietário do arquivo config/environment.rb . Seu dono será o redmine do usuário (se não for root).

Para mais informações, consulte a excelente documentação do Passageiro .

    
por 18.05.2011 / 14:23