Le 57ième guide RoR - Test de la configuration de production via l’installation d’un blog Méphisto
20 décembre 2006 par Marc Charlet
Pour tester la configuration locale que nous venons d'installer sur dreamhost, nous allons installer le système de blog Mephisto. Cette installation va également nous permettre de tester les fonctionnalités FastCGI de notre hébergement.
Comme annoncé précédemment, nous allons nous baser sur le tutoriel d'installation du site LabRatz
Voici un court résumé des étapes:
mkdir -p $HOME/mephisto
svn co http://svn.techno-weenie.net/projects/mephisto/trunk $HOME/mephisto
gem install tzinfo
rake gems:freeze GEM=tzinfo
cd $HOME/mephisto
rake rails:freeze:edge
- Passage par Dreamhost et création d'un sous-domaine mephisto.votre_domaine.com en n'oubliant pas de cocher la case support FCGI et en renseignant /home/mon_utilisateur/mephisto/public comme répertoire web du sous-domaine.
- Création des bases de données production, development, et test
- modification du fichier database.yml en accord
- modification du fichier .htaccess (ligne 32) pour prendre fcgi en compte
-
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
- modification de la ligne 5 du fichier config/environment.rb (enlever le commentaire de début de ligne #):
-
ENV['RAILS_ENV'] ||= 'production'
- créer le sous-répertoire /log inexistant et appliquer les permissions adéquates
mkdir -p $HOME/mephisto/log
cd $HOME/mephisto
chmod 0775 db
chmod 0777 log
chmod 0775 public
chmod 0666 log/*.log
chmod o+x public/dispatch.fcgi
- dans le répertoire de Méphisto il ne reste plus qu'à entrer:
cd $HOME/mephisto
rake RAILS_ENV=production db:bootstrap
- connexion sur le site web http://mephisto.votre_domaine.com1...
- ;( message d'erreur de type 500 ;(
Rails application failed to start properly
(i) C'est ici que ça se passe (i)
Impossible de faire fonctionner Méphisto en mode fcgi. Si je repasse en mode cgi 'normal'2 tout semble fonctionner normalement. En mode fcgi, toujours le même message dans le log apache:
FastCGI: incomplete headers (0 bytes) received from server
Après de longues et vaines recherches sur le net, j'ai dû me rendre à l'évidence et constater que le wiki du site Dreamhost était mon ami.
J'ai appliqué à la lettre leur conseil de création d'une application Rails 'vide'
cd $HOME
rails tmp_dir
et d'ensuite recopier les fichiers du sous-répertoire /public dans mon sous-répertoire mephisto/public.
Connexion au site web de mon Méphisto...
:d ça marche :d
Passage par mon shell ssh:
ps ax
PID TTY STAT TIME COMMAND
17348 ? S 0:00 sshd: mon_utilisateur@pts/7
15176 pts/7 Ss 0:00 -bash
20052 ? S 0:01 /home/mon_utilisateur/extra/bin/ruby dispatch.fcgi
22315 ? S 0:01 /home/mon_utilisateur/extra/bin/ruby dispatch.fcgi
13501 ? S 0:02 /home/mon_utilisateur/extra/bin/ruby dispatch.fcgi
23743 ? S 0:01 /home/mon_utilisateur/extra/bin/ruby dispatch.fcgi
62 pts/7 R+ 0:00 ps ax
:d les dispatch.fcgi sont bien au rendez-vous!:d
Le reste c'est de la routine3
- modification du fichier dispatch.fcgi pour prendre en compte les erreurs 500 intermittentes
class RailsFCGIHandler
private
def frao_handler(signal)
dispatcher_log :info, "asked to terminate immediately"
dispatcher_log :info, "frao handler working its magic!"
restart_handler(signal)
end
alias_method :exit_now_handler, :frao_handler
end
- et autres
killall -9 dispatch.fcgi
comme préconisé par mon ami le wiki
A suivre...
Retour vers l'article d'introduction
Tags: Dreamhost, fcgi, gem, guide-débutant, mephisto, RoR, ruby, Ruby on Rails, rubygem
