2012-11-19 1 views
2

Env:Rails3, apache, passager ne fonctionne pas. Mais l'application de rails2 fonctionne dans la même env

  • OpenSUSE 11,4
  • Apache 2.2.17
  • passagers 3.0.18
  • Ruby 1.8.7
  • Rails 3.2.8

J'ai déjà installé l'application RoR sous apache - ChiliProject (mais en utilisant les rails 2.3.14) et cela fonctionne très bien.

Il est installé dans /chiliproject et dans httpd config (en fait dans le serveur par défaut puisque je n'ai pas de vhosts) j'ai "RailsBaseURI/chiliproject/public".

Maintenant, j'ai besoin de développer une application propre (première expérience dans le développement web). "Webrick fonctionne bien, mais je veux l'exécuter sous Apache avec CGI. J'ai ajouté "RailsBaseURI/hello_world/public". Mais cela ne fonctionne pas correctement. Lorsque j'appuie sur "À propos de votre environnement d'application" sur la page d'index, cela me donne 404 "La page que vous recherchez n'existe pas.". Pour toutes les routes dans les rails, il donne l'erreur 500 ou 404. Mais les mêmes routes et contrôleurs fonctionnent bien avec webrick. Et même si je mets ChiliProject dans/hello_world cela fonctionne. Cela signifie que ce problème n'est pas avec apache ou passager.

Pas apache/erreurs de passagers dans le journal, juste 404 ou 500. J'ai essayé « rails 2.4.13 nouvelle hello_world » mais il me donne beaucoup d'erreurs et googler simple ne résout pas tous. Donc, je ne peux pas facilement créer un nouveau projet avec rails 2.4.13 qui fonctionne bien avec une autre application et je ne pense pas que cela puisse aider.

J'ai lu sur le site Web de ruby ​​que 1.8.7 peut causer des accidents avec rails3. Après cela, j'ai passé 4 heures à travailler autour de RVM et de différentes versions de rubis. Après tout, ChiliProject (même la dernière version) ne fonctionne pas avec ruby ​​1.9 et mon problème original n'a pas disparu. Maintenant, j'ai tout de retour (ruby 1.8.7 du repo de la distribution et aucun RVM).

+0

Je ne suis pas sûr , mais je pense que vous avez besoin de ruby ​​1.9.2 ou plus pour Rails 3.2. Mais d'abord, si vous êtes au "Hello world", restez avec le serveur de rails standard (webrick) pour le moment. Il y a BEAUCOUP à apprendre, et vous avez environ 20 choses différentes qui peuvent mal se passer - isoler les petits composants et vous serez beaucoup mieux (et vous serez également en mesure d'écrire des questions plus spécifiques que les gens sur Stack Overflow peut effectivement répondre :-). –

+0

J'ai essayé Ruby 1.9.3 - rien n'a changé –

+0

Je sais que cette mauvaise question, mais je ne peux pas le rendre plus précis. Peut-être pourriez-vous m'aider à poser des questions précises. Si vous pensez que webrick est mieux maintenant - OK, mais j'ai besoin de scripts CGI dans mon application (pour communiquer avec le démon et le matériel).Pourriez-vous s'il vous plaît me montrer au tutoriel comment activer l'exécution CGI dans webrick? –

Répondre

5

Si votre webbrick fonctionne, grand changement quelque chose de mal avec votre fichier de configuration apache.

J'utilise bitnami RubyStack et configuration ci-dessous sans aucun problème:

<VirtualHost *:80> 
    ServerName www.myhostname.com 
    DocumentRoot /home/bitnami/app_name/public 
    RailsEnv development 
    <Directory /home/bitnami/app_name/public> 
     Allow from all 
     Options -MultiViews 
    </Directory> 
</VirtualHost> 

Ma version passagers:

:~$sudo passenger-config --root 
/opt/bitnami/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.17 

S'il vous plaît vérifier si le passager est en cours d'exécution:

:~$sudo passenger-status 

----------- General information ----------- 
max  = 6 
count = 2 
active = 0 
inactive = 2 
Waiting on global queue: 0 

----------- Application groups ----------- 
/home/bitnami/app_1: 
    App root: /home/bitnami/app_1 
    * PID: 4972 Sessions: 0 Processed: 24  Uptime: 33h 38m 14s 

/home/bitnami/app_2: 
    App root: /home/bitnami/app_2 
    * PID: 24538 Sessions: 0 Processed: 1682 Uptime: 296h 14m 44s 
+1

Merci beaucoup, Rogier "Développement RailsEnv" est ce dont j'ai besoin. Par défaut le passager court la production, mais mon monde de salut n'a pas la production env. –

+0

Été là, fait cela. Heureux que ça a aidé! ;-) – Roger

+0

m'a aidé. Fondamentalement, ce que j'ai manqué était que "Soyez sûr de pointer vers le public" ne signifiait pas "où votre substance est" mais "où le dossier" public "imbriqué dans vos affaires est". Doh. RailsEnv a fait le reste :) – Kheldar

Questions connexes