<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blogbangbang.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Blog Bang Bang - Tag - mongrel</title>
  <link>http://blogbangbang.com/</link>
  <atom:link href="http://blogbangbang.com/feed/tag/mongrel/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Mon, 05 Jul 2010 19:13:50 +0200</pubDate>
  <copyright>cc-by-sa</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Héberger un site RubyOnRails avec Mongrel et Apache</title>
    <link>http://blogbangbang.com/post/2007/05/13/Heberger-un-site-RubyOnRails-avec-Mongrel-et-Apache</link>
    <guid isPermaLink="false">urn:md5:7c7113640f96cad923ecf01cf556f7b4</guid>
    <pubDate>Sun, 13 May 2007 23:17:00 +0200</pubDate>
    <dc:creator>jblanche</dc:creator>
        <category>geeks</category>
        <category>apache</category><category>mongrel</category><category>RubyOnRails</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;
Je vous avait parlé il y a peu de la &lt;a hreflang=&quot;fr&quot; href=&quot;http://blogbangbang.com/post/2007/04/03/Installation-de-RubyOnRails-et-RadRails&quot;&gt;création d'une application&lt;/a&gt; RubyOnRails.&lt;br /&gt;
C'est bien mais un site c'est fait pour être hébergé quelquepart !&lt;br /&gt;
Et malheureusement Mongrel, on connait pas trop, on a l'habitude d'Apache...&lt;/p&gt;
&lt;p&gt;
Et bien celà tombe bien, car c'est deux là vont très bien ensemble, il est en effet possible d'utiliser
apache pour créer les virtual host, servir une partie des fichiers... et Mongrel pour le reste.
&lt;/p&gt;
&lt;p&gt;
C'est même selon les spécialistes, le meilleur moyen d'héberger un site Rails actuellement.&lt;br /&gt;
C'est bien mais comment on fait ? Et bien je vous explique tout de suite la procédure sur une Ubuntu...
&lt;/p&gt;
&lt;p&gt;
Je pars du princpe que vous avez une application rails (la mienne s'appellera mynewsite)avec un serveur mongrel
qui fonctionne en local(accessible sur &lt;code&gt;http://localhost:3000&lt;/code&gt;).
&lt;/p&gt;
&lt;p&gt;
Avant tout, vous devez stoper votre serveur Mongrel afin de faire prendre le relais à Apache+Mongrel.&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt;mongrel_rails stop //à éxécuter à la racine de votre aplication rails.&lt;/div&gt;
&lt;p&gt;Puis, si vous suivez ce tuto à la lettre avec un nom de domaine qui ne vous appartient pas,
vous devez ajouter à votre fichier &lt;code&gt;/etc/hosts&lt;/code&gt; le site désiré, afin de ne pas etre redirigé vers le vrai mynewsite.com.&lt;br /&gt;
La ligne devrait donc ressembler à ça :&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt; 127.0.0.1 mynewsite.com&lt;/div&gt;
&lt;p&gt;
Dans un premier temps, nous devons activer le module proxy d'apache.
&lt;/p&gt;
&lt;h3&gt; 1- Activer le module proxy d'apache &lt;/h3&gt;
&lt;div class=&quot;code&quot;&gt;sudo a2enmod proxy&lt;/div&gt;
&lt;h3&gt; 2- Créer le virual host&lt;/h3&gt;
&lt;p&gt;
Le virtual host se crée comme n'importe quel autre avec apache2 : donc on va creer un
nouveau fichier : &lt;code&gt;001-myewsite&lt;/code&gt; dans le répertoire &lt;code&gt;/etc/apache2/sites
-available&lt;/code&gt;
(si vous hébergez déjà des sites, pensez à modifier le 001 en 002 ou plus).
&lt;/p&gt;
&lt;p&gt;
Le VirtuaHost doit donc ressembler à cela :
&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt;
&amp;lt;VirtualHost mynewsite.com:80&amp;gt;&lt;br /&gt;    ServerName mynewsite.com&lt;br /&gt;    ServerAlias www.mynewsite.com&lt;br /&gt;&lt;br /&gt;    ProxyPass / http://www.mynewsite.com:3000/&lt;br /&gt;    ProxyPassReverse / http://www.mynewsite.com:3000&lt;br /&gt;    ProxyPreserveHost on&lt;br /&gt;&lt;br /&gt;    #Fix for Apache bug 39499&lt;br /&gt;    SetEnv force-proxy-request-1.0 1&lt;br /&gt;    SetEnv proxy-nokeepalive 1&lt;br /&gt;&lt;br /&gt;    # Ne pas rediriger les images, les CSS&lt;br /&gt;    # et les Javascripts vers Mongrel&lt;br /&gt;    ProxyPass /images !&lt;br /&gt;    ProxyPass /stylesheets !&lt;br /&gt;    ProxyPass /javascripts !&lt;br /&gt;&lt;br /&gt;    # Et précisons le path où se trouve&lt;br /&gt;    # les images, les CSS et les javascripts&lt;br /&gt;    Alias /images /var/www/mynewsite/public/images&lt;br /&gt;    Alias /stylesheets /var/www/mynewsite/public/stylesheets&lt;br /&gt;    Alias /javascripts /var/www/mynewsite/public/javascripts&lt;br /&gt;&lt;br /&gt;    CustomLog /var/www/mynewsite/log/access &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %s %b \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot;&amp;quot;&lt;br /&gt;    ErrorLog /var/www/mynewsite/log/error&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;
&lt;/div&gt;
&lt;h4&gt;Explications :&lt;/h4&gt;
&lt;p&gt;
Les deux premières lignes sont évidentes, on indique que ce virtual host fera tourner les sites demandé
sur &lt;code&gt;mynewsite.com&lt;/code&gt; et &lt;code&gt;www.mynewsite.com&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
Notre appli tourne sur le port 3000 de la machine mais il est quand meme plus agréable de taper &lt;code&gt; mynewsite.com&lt;/code&gt; que
&lt;code&gt;mynewsite.com:3000&lt;/code&gt; pour acceder au site.&lt;br /&gt;
C'est le but des 3 lignes suivantes.&lt;/p&gt;
&lt;p&gt;Pour ce faire on utilise le mod_proxy d'apache (que l'on vient d'installer) en lui indiquant que les demandes faites sur
&lt;code&gt;mynewsite.com&lt;/code&gt; doivent être redirigées vers &lt;code&gt; mynewsite.com:3000&lt;/code&gt; (cela se fait bien sur de maniere invisible et l'adresse dans
la barre d'adresse ne changera pas.)
&lt;/p&gt;
&lt;p&gt;
On trouve ensuite 2 lignes qui permettent de résoudre un bug d'Apache lorsqu'il est associé à Mongrel.
&lt;/p&gt;
&lt;p&gt;
Par la suite, on précise grâce à ProxyPass que les demandes pour les dossiers images, stylesheets et javascripts ne seront pas redirigées
vers Mongrel (Apache est plus rapide pour ces contenus).
&lt;br /&gt;
On indique donc à Apache le chemin vers ces dossiers grâce aux directives Alias.
&lt;/p&gt;
&lt;p&gt;
Enfin les directives CustomLog et ErrorLog indique à apache ou stocker les logs d'acces et d'erreur de notre site.&lt;br /&gt;
On les place logiquement dans le dossier log de notre application rails.&lt;br /&gt;
(il peut être nécessaire d'avoir créer les fichier et de leur avoir donné les droits pour l'utilisateur www-data).
&lt;/p&gt;
&lt;h3&gt;3-Configuration du proxy&lt;/h3&gt;
&lt;p&gt;
Cette étape est souvent oubliée dans ls différents tutos que j'ai pu trouver sur le net.
Pourtant elle est indispensable et c'est elle qui à à mettre en cause si vous vous retrouvez avec une erreur :
&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt;
Forbidden
You don't have permission to access / on this server.
&lt;/div&gt;
&lt;p&gt;
Pour configurer notre proxy nous allons devoir modifier le fichier proxy.conf.&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt;sudo nano /etc/apache2/mods-enabled/proxy.conf&lt;/div&gt;
&lt;p&gt;et commenter la ligne &lt;code&gt;Deny from all&lt;/code&gt; pour la remplacer par &lt;code&gt;Allow from mynewsite.com&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;4- relancer apache.&lt;/h3&gt;
&lt;div class=&quot;code&quot;&gt;sudo /etc/init.d/apache2 restart&lt;/div&gt;
&lt;h3&gt;5- relancer mongrel&lt;/h3&gt;
&lt;div class=&quot;code&quot;&gt;mongrel_rails start -d //à éxécuter à la racine de votre application rails.&lt;/div&gt;
&lt;p&gt;
Voilà on y est, vous pouvez désormais vous rendre sur &lt;code&gt;http://mynewsite.com&lt;/code&gt; dans votre naviguateur et vous devriez
y voir la page d'accueil de votre application.
&lt;/p&gt;</description>
    
    
    
          <comments>http://blogbangbang.com/post/2007/05/13/Heberger-un-site-RubyOnRails-avec-Mongrel-et-Apache#comment-form</comments>
      <wfw:comment>http://blogbangbang.com/post/2007/05/13/Heberger-un-site-RubyOnRails-avec-Mongrel-et-Apache#comment-form</wfw:comment>
      <wfw:commentRss>http://blogbangbang.com/feed/atom/comments/29</wfw:commentRss>
      </item>
    
</channel>
</rss>