Ouverture de session

Commentaires récents

Syndication
Flux XML

rails1.2 + apache 2.2 + fcgi + ubuntu 7.04

rails1.2 + apache 2.2 + fcgi + ubuntu 7.04
Posté par STef77 le Lundi, 21 Mai, 2007 - 3:07am. Linux/Unix & MacOS X

Bonsoir,

J'aimerais mettre mon appli en production avec apache.

J'ai lu une pléthore de tutoriaux (dont j'ai trouvé des liens sur ce site pour la plupart).
J'ai donc bien respecté ce qu'il y avait dans les tutoriaux (config apache, modif du .htaccess etc). Malgré cela le module fcgi refuse de fonctionner correctement.

Il n'y a aucune erreur au niveau d'apache (du moins si j'en crois les logs) ni au niveau des logs ruby sauf si dans le répertoire public j'exécute la commande suivante :

ruby dispatch.fcgi

Cette commande génère une erreur dans le fichier [mon_appli_ruby]/log/fastcgi.crash.log

Ce log ne m'inspire pas bcq :

[21/May/2007:03:05:27 :: 5610] starting
[21/May/2007:03:05:27 :: 5610] Dispatcher failed to catch: private method `split' called for nil:NilClass (NoMethodError)
/usr/lib/ruby/1.8/cgi.rb:897:in `parse'
../config/../vendor/rails/actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb:45:in `initialize_query'
/usr/lib/ruby/1.8/cgi.rb:2274:in `initialize'
/usr/lib/ruby/1.8/fcgi.rb:606:in `new'
/usr/lib/ruby/1.8/fcgi.rb:606:in `each_cgi'
../config/../vendor/rails/railties/lib/fcgi_handler.rb:141:in `process_each_request!'
../config/../vendor/rails/railties/lib/fcgi_handler.rb:55:in `process!'
../config/../vendor/rails/railties/lib/fcgi_handler.rb:25:in `process!'
dispatch.fcgi:24
almost killed by this error
[21/May/2007:03:05:27 :: 5610] Dispatcher failed to catch: private method `split' called for nil:NilClass (NoMethodError)
/usr/lib/ruby/1.8/cgi.rb:897:in `parse'
../config/../vendor/rails/actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb:45:in `initialize_query'
/usr/lib/ruby/1.8/cgi.rb:2274:in `initialize'
/usr/lib/ruby/1.8/fcgi.rb:606:in `new'
/usr/lib/ruby/1.8/fcgi.rb:606:in `each_cgi'
../config/../vendor/rails/railties/lib/fcgi_handler.rb:141:in `process_each_request!'
../config/../vendor/rails/railties/lib/fcgi_handler.rb:55:in `process!'
../config/../vendor/rails/railties/lib/fcgi_handler.rb:25:in `process!'
dispatch.fcgi:24
killed by this error

Pour rappel, ma config soft est dans le titre de ce message.

Merci pour toute aide.

STef



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
Salut ! Je n'ai pas d'idée
Auteur: 
slainer68
Date: 
Lun, 21/05/2007 - 09:50

Salut !

Je n'ai pas d'idée pour l'instant sur ton problème. Mais...
tu a la change de pouvoir utiliser Apache 2.2... et donc d'avoir mod_proxy_balancer. Pourquoi ne pas tenter un déployement Apache+Mongrels cluster ? C'est tellement plus fiable que FCGI et flexible.

Bonne chance.
Nicolas.

---

Mon blog sur Rails et d'autres choses :
http://blog.slainer68.org


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Mongrel
Auteur: 
STef77
Date: 
Lun, 21/05/2007 - 12:12

En passant ma journé de hier dans les tutos, j'ai effectivement vu pas mal de choses sur Mongrel.

La seule chose qui me pose problème sur Mongrel est qu'il ne s'installe pas via "apt-get install" (à moins qu'il est possible de le faire en ajoutant un dépôt dont j'ignore forcément l'existence).

J'ai plusieurs serveurs et j'essaye de garder une (relative) uniformité pour la maintenance.

J'ai également un autre serveur avec une ubuntu 6.10 avec apache 2.0 et rails 1.6
Sur cette machine j'ai le même problème avec le fcgi

A terme j'aimerais avoir un environnement rails en production sur les 2 serveurs. Donc je me dis que si je trouve la solution pour un des 2 ça devrait fonctionner également sur l'autre.

J'ai lu aussi que pour Mongrel il est fortement conseillé d'avoir apache 2.2 (que je ne pourrais (aujourd'hui) pas installer via les dépôts standards sur mon ubuntu 6.10)

Cela dit si Mongrel est la seule solution, alors je peux l'adopter (mieux vaut un seul serveur à applications rails qui fonctionne bien que 2 qui ne fonctionnent pas)

Merci

STef


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Moi aussi au début j'aurais
Auteur: 
slainer68
Date: 
Lun, 21/05/2007 - 16:41

Moi aussi au début j'aurais voulu ne pas utiliser gem et utiliser les packages de ma distrib, mais finalement j'ai laissé tombé. Je n'installe que ruby et rubygems avec le systeme de paquet, et les gems (rails, mongrel, rmagick, etc) directement avec rubygems. C'est fiable , 100% des gems sont dispos et surtout mises à jour !

Sinon, l'avantage d'un déployment mongrel est aussi la flexibilité. Tu peux changer de frontal assez rapidement. Si, pour des raisons de rapidité, tu n'as pas le temps de t'amuser à déployer ton cluster avec apache 2.2, tu peux commencer avec pound. c'est vraiment très simple (http://mongrel.rubyforge.org/docs/pound.html).

@+.

---

Mon blog sur Rails et d'autres choses :
http://blog.slainer68.org


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Mongrel et mongrel_cluster
Auteur: 
sam
Date: 
Lun, 21/05/2007 - 13:18

Mongrel et mongrel_cluster s'installent en un clin d'oeil avec gem. Par contre je confirme qu'Apache 2.2 est recommandé, car il contient un module de load balancing qui permet de rediriger les requêtes vers des "instances" de Mongrel.

J'avais rédigé un tuto pour une 6.06 : http://blog-perso.onzeweb.info/2006/12/16/rails-mongrel-apache-ubuntu-production/

J'ai en prévision un tuto pour une 7.04, reporté sans cesse (il diffère dans le bon sens : plus simple pour l'install de ruby et d'apache 2.2 !). Ceci dit les grandes lignes sont les mêmes, le principal piège dont je me souvienne étant qu'il faut modifier le fichier /etc/apache2/mods-available/proxy.conf de la manière suivante (sans l'info, prise de tête garantie) :

#Order deny,allow
#Deny from all
Order allow,deny
Allow from all

Et les modules à activer :
sudo a2enmod proxy_balancer -> mettra en place d'autres modules je crois
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod proxy_http

Le seul truc particulièrement pénible avec Mongrel, c'est qu'en cas de coupure brutale, il reste des fichiers PID qui peuvent empêcher le démarrage de l'appli sans intervention. Mieux vaut le anticiper... Mais là une solution existe sous forme d'un patch : http://textsnippets.com/posts/show/931


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
patch mongrel
Auteur: 
STef77
Date: 
Mar, 22/05/2007 - 02:33

J'ai regardé sur le site conseillé :
http://textsnippets.com/posts/show/931

J'ai tenté d'appliquer le patch (dans sa version prétendue 'corrigée') et j'ai eu l'erreur suivante :

root@web2:~# patch -p0 < patch_mongrel.patch
missing header for unified diff at line 3 of patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|- bin/mongrel_rails-orig 2007-04-13 09:44:11.000000000 +0300
|+++ bin/mongrel_rails 2007-04-13 10:00:39.000000000 +0300
--------------------------
File to patch: /usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails
patching file /usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails
patch: **** malformed patch at line 20: ning. #{defaults[:log_file]} for errors. EXITING."

Je peux utiliser Mongrel mais mon serveur ne doit pas planter lorsqu'il monte en charge et surtout il ne faut pas d'opération manuelle en cas de plantage...

Merci pour l'aide

STef


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
installation mongrel ?
Auteur: 
STef77
Date: 
Lun, 21/05/2007 - 21:49

J'ai installé rubygems (apt-get install rubygems)

J'ai mis le brol à jour : gem update --system

Et ça va pas très fort...

root@web2:/home/stef# gem install mongrel --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
/usr/local/lib/site_ruby/1.8/rubygems/source_info_cache.rb:132: [BUG] Segmentation fault
ruby 1.8.5 (2006-08-25) [x86_64-linux]

Aborted
root@web2:/home/stef#


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
autre essai, autre erreur
Auteur: 
STef77
Date: 
Lun, 21/05/2007 - 21:50

Donc j'ai rééssayé la commande et voici qu'il me fait une autre erreur :

root@web2:/home/stef# gem install mongrel --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find mongrel (> 0) in any repository
root@web2:/home/stef#


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
et tout d'un coup ça ne va pas non plus...
Auteur: 
STef77
Date: 
Lun, 21/05/2007 - 21:57

root@web2:/home/stef# gem install mongrel mongrel_cluster --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
Select which gem to install for your platform (x86_64-linux)
1. mongrel 1.0.1 (mswin32)
2. mongrel 1.0.1 (ruby)
3. mongrel 1.0 (mswin32)
4. mongrel 1.0 (ruby)
5. Skip this gem
6. Cancel installation
> 2
Select which gem to install for your platform (x86_64-linux)
1. fastthread 1.0 (ruby)
2. fastthread 1.0 (mswin32)
3. fastthread 0.6.4.1 (mswin32)
4. fastthread 0.6.4.1 (ruby)
5. Skip this gem
6. Cancel installation
> 1
Building native extensions. This could take a while...
ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError)
ERROR: Failed to build gem native extension.

ruby extconf.rb install mongrel mongrel_cluster --include-dependencies
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:1

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/fastthread-1.0 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/fastthread-1.0/ext/fastthread/gem_make.out
root@web2:/home/stef#

root@web2:/home/stef# more /usr/lib/ruby/gems/1.8/gems/fastthread-1.0/ext/fastthread/gem_make.out
ruby extconf.rb install mongrel mongrel_cluster --include-dependencies
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:1
root@web2:/home/stef#

Avec tout ça j'espère que je n'ai des crasses qui traînent sur mon serveur de production...

Allez, un bon ACDC et une bonne mousse j'ai besoin d'une pause ;-)

Merci pr l'aide


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
mongrel OK mais prob de config
Auteur: 
STef77
Date: 
Mar, 22/05/2007 - 02:15

Bon, j'ai réussi à installer mongrel :

La solution est qu'il fallait tous les outils nécessaires à la compilation + les paquets 'development' de ruby

Dans le tuto de SAM, on parle de la config apache.
Il y a la ligne suivante :

La question est simple : Comment puis-je savoir (ou définir) la valeur 'mon_appli_cluster' ?

C'est ce qu'il me manque pour pouvoir démarrer apache.

Merci

STef


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Il faut effectivement les
Auteur: 
sam
Date: 
Mar, 22/05/2007 - 08:02

Il faut effectivement les paquets requis pour la compilation, souvent les gems produisent une compilation de code C à l'install. De toute manière c'est toujours très utile d'avoir "build-essential" d'installé.

Pour le patch, un serveur ne doit effectivement pas planter ou être hors tension. Mais ça arrive dans la vraie vie même avec des tonnes de précautions. Seuls les paranos survivent ;-)

Pour le cluster, tu peux l'appeler "toto", "choucroute" ou "syntaxerror". Le nom sert de lien entre la déclaration (Proxy) et son utilisation (RewriteRule). Le mieux est d'aller jeter un oeil sur le site de Mongrel, il y a une belle page là dessus. Et manifestement l'auteur maitrise mieux le sujet de quoi :

http://mongrel.rubyforge.org/docs/apache.html


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Sondage
Lorsque je développe avec Ruby on Rails c'est principalement sous:
Linux
36%
Mac OS X
30%
Windows
32%
(Free|Open|Net) BSD
1%
Autre...
1%
Nombre de votes: 368

Qui est en ligne
Il y a actuellement 1 utilisateur et 42 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Hébergement et ressources techniques gracieusement fournis par la SSLL Nuxos Group ]