<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.unelectronlibre.info/journal/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>Un Electron Libre... - Tag - nginx</title>
  <link>http://www.unelectronlibre.info/journal/</link>
  <atom:link href="http://www.unelectronlibre.info/journal/index.php//feed/tag/nginx/rss2" rel="self" type="application/rss+xml"/>
  <description>Bloc-notes de Nicolas Steinmetz</description>
  <language>fr</language>
  <pubDate>Fri, 01 Aug 2008 15:02:27 +0200</pubDate>
  <copyright>Creative Commons NC-BY-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Nginx, Redmine et PostgreSQL</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/05/01/Nginx-Redmine-et-PostgreSQL</link>
    <guid isPermaLink="false">urn:md5:8e336aadda997e0890d54f06b874fe5a</guid>
    <pubDate>Thu, 01 May 2008 22:03:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Trucs de geek</category>
        <category>debian</category><category>gestion de projet</category><category>nginx</category><category>postgresql</category><category>rails</category><category>redmine</category><category>ubuntu</category>    
    <description>    &lt;p&gt;Cela a été testé sur une Ubuntu &amp;quot;Hardy 08.04&amp;quot; &amp;amp; Debian &amp;quot;Testing/Lenny&amp;quot;. Les utilisateurs d'Ubuntu rajouteront un sudo aux endroits qui vont bien &lt;img src=&quot;/journal/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;h2&gt;Pré-requis&lt;/h2&gt;


&lt;h3&gt;Installons le socle de base&lt;/h3&gt;

&lt;pre&gt;aptitude install nginx ruby rubygems ruby-pkg-tools ruby1.8-dev build-essential postgresql&lt;/pre&gt;


&lt;p&gt;Utilisons ensuite les gems pour installer les &amp;quot;paquets&amp;quot; ruby dont on a besoin :&lt;/p&gt;

&lt;pre&gt;
gem install rails mongrel mongrel_cluster postgres-pr --include-dependencies
&lt;/pre&gt;


&lt;p&gt;Dans &lt;code&gt;~/.bash_profile&lt;/code&gt; ou ailleurs (&lt;code&gt;/etc/profile&lt;/code&gt;, &lt;code&gt;/etc/environment&lt;/code&gt;, etc) tant qu'au final, ce bout de chemin soit ajouté à votre &lt;code&gt;PATH&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;export PATH=&amp;quot;$PATH:/var/lib/gems/1.8/bin&amp;quot;&lt;/pre&gt;


&lt;h3&gt;Création de la base postgresql&lt;/h3&gt;


&lt;p&gt;Nous allons d'abord changer un paramètre d'authentification de postgres en éditant le fichier @@
/etc/postgresql//8.3/main/pg_hba.conf@@ afin d'avoir la ligne suivante :&lt;/p&gt;

&lt;pre&gt;local   all         all                               md5&lt;/pre&gt;


&lt;p&gt;Redémarrez ensuite postgresql pour que votre modification soit prise en compte :&lt;/p&gt;

&lt;pre&gt;/etc/init.d/postgresql-8.3 restart&lt;/pre&gt;


&lt;p&gt;En root, devenez l'utilisateur &amp;quot;postgres&amp;quot;, compte technique d'administration de postgres :&lt;/p&gt;

&lt;pre&gt;su postgres&lt;/pre&gt;


&lt;p&gt;Créer un utilisateur redmine et une base redmine&lt;/p&gt;

&lt;pre&gt;createuser redmine --no-superuser --no-createdb --no-createrole --login --pwprompt --encrypted
(pour le tutoriel, j'ai pris le mot de passe redmine)
createdb --owner=redmine --encoding=utf-8 redmine
exit&lt;/pre&gt;


&lt;p&gt;Pour tester votre compte :&lt;/p&gt;

&lt;pre&gt;psql -U redmine redmine&lt;/pre&gt;


&lt;h2&gt;Installation de Redmine&lt;/h2&gt;


&lt;h3&gt;Récupération de Redmine&lt;/h3&gt;


&lt;p&gt;Même si la &lt;a href=&quot;http://www.redmine.org/news/show/14&quot;&gt;version 0.7 de Redmine est sortie il y a quelques jours&lt;/a&gt;, un bug fait qu'il vaut mieux attendre la version 0.7.1...&lt;/p&gt;


&lt;p&gt;J'utilise donc la branche 0.6-stable pour ce tutoriel et je récupère le tout par svn. A vous d'adapter selon votre besoin et votre expérience&lt;/p&gt;

&lt;pre&gt;cd /srv/rails/ 
(adapter ce chemin à l'endroit où vous voulez mettre redmine, pas besoin que ce soit dans /var/www)
svn co http://redmine.rubyforge.org/svn/branches/0.6-stable redmine-0.6&lt;/pre&gt;


&lt;h3&gt;Configuration de la base de données&lt;/h3&gt;


&lt;p&gt;Créer le fichier &lt;code&gt;config/database.yml&lt;/code&gt;...&lt;/p&gt;

&lt;pre&gt;cp config/database.yml.example config/database.yml&lt;/pre&gt;


&lt;p&gt;... avec le contenu suivant :&lt;/p&gt;

&lt;pre&gt;
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: &amp;quot;redmine&amp;quot;
&lt;/pre&gt;


&lt;h3&gt;Remplissez la base&lt;/h3&gt;


&lt;p&gt;Au niveau du répertoire de redmine :&lt;/p&gt;

&lt;pre&gt;rake db:migrate RAILS_ENV=&amp;quot;production&amp;quot;
rake redmine:load_default_data RAILS_ENV=&amp;quot;production&amp;quot;&lt;/pre&gt;


&lt;h3&gt;Test de bon fonctionnement&lt;/h3&gt;


&lt;p&gt;Toujours depuis le répertoire de redmine :&lt;/p&gt;

&lt;pre&gt;mongrel_rails start --environment=production&lt;/pre&gt;


&lt;p&gt;En vous rendant sur &lt;a href=&quot;http://localhost:3000/&quot; title=&quot;http://localhost:3000/&quot;&gt;http://localhost:3000/&lt;/a&gt;, vous devriez voir une instance redmine tourner et pouvoir vous y connecter avec les identifiants admin/admin.&lt;/p&gt;


&lt;h3&gt;Mise en place du cluster mongrel&lt;/h3&gt;


&lt;p&gt;Note : je voulais faire tourner redmine via fastcgi mais j'ai rien trouvé à ce sujet. Tous les tutoriels sont basés sur mongrel donc je fais comme les autres...&lt;/p&gt;


&lt;p&gt;Créer le fichier &lt;code&gt;config/mongrel_cluster.yml&lt;/code&gt; dans le répertoire Redmine :&lt;/p&gt;

&lt;pre&gt;
user: vous
cwd: /srv/rails/redmine-0.6
port: &amp;quot;9000&amp;quot;
environment: production
group: vous
address: 0.0.0.0
pid_file: log/mongrel.pid
servers: 2
&lt;/pre&gt;


&lt;p&gt;et lancer le cluster :&lt;/p&gt;

&lt;pre&gt;
mongrel_rails cluster::start
&lt;/pre&gt;


&lt;p&gt;Vous devriez pouvoir accéder à votre instance redmine via &lt;a href=&quot;http://localhost:9000/&quot; title=&quot;http://localhost:9000/&quot;&gt;http://localhost:9000/&lt;/a&gt; et &lt;a href=&quot;http://localhost:9001/&quot; title=&quot;http://localhost:9001/&quot;&gt;http://localhost:9001/&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;Faire en sorte que le cluster démarre lors du démarrage de votre pc/serveur :&lt;/h3&gt;

&lt;pre&gt;mkdir /etc/mongrel_cluster
ln -s /srv/rails/redmine-0.6/config/mongrel_cluster.yml /etc/mongrel_cluster/redmine.yml
cp /var/lib/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/
chmod +x /etc/init.d/mongrel_cluster
update-rc.d mongrel_cluster defaults&lt;/pre&gt;


&lt;h2&gt;Configuration de nginx&lt;/h2&gt;


&lt;p&gt;Dernière étape, accéder à votre instance redmine sur le port 80 via nginx :&lt;/p&gt;


&lt;p&gt;Dans &lt;code&gt;/etc/nginx/sites-available/&lt;/code&gt; ajouter un fichier &amp;quot;redmine&amp;quot; par ex contenant :&lt;/p&gt;

&lt;pre&gt;
server {
        listen 80;
        server_name localhost;
        root /srv/rails/redmine-0.6/public;

        location / {
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect false;
                proxy_read_timeout 300;

                if (-f $request_filename/index.html) {
                        rewrite (.*) $1/index.html break;
                }

                if (-f $request_filename.html) {
                        rewrite (.*) $1.html break;
                }

                if (-f $request_filename.txt) {
                        rewrite (.*) $1.txt break;
                }

                proxy_pass http://127.0.0.1:9000/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root html;
        }

        access_log /var/log/nginx/redmine.access.log;
        error_log /var/log/nginx/redmine.error.log;
}
&lt;/pre&gt;


&lt;p&gt;Activez le site :&lt;/p&gt;

&lt;pre&gt;ln -s /etc/nginx/sites-available/redmine /etc/nginx/sites-enabled/redmine&lt;/pre&gt;


&lt;p&gt;et relancer nginx :&lt;/p&gt;

&lt;pre&gt;/etc/init.d/nginx restart&lt;/pre&gt;


&lt;p&gt;En vous rendant sur &lt;a href=&quot;http://localhost/&quot; title=&quot;http://localhost/&quot;&gt;http://localhost/&lt;/a&gt; vous devez avoir accès à votre instance redmine...&lt;/p&gt;


&lt;p&gt;Connaissant pas du tout rails et mongrel, il y a peut être des améliorations à apporter. Pour nginx, idem. Je suis preneur d'améliorations &lt;img src=&quot;/journal/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Maintenant, il me reste à étudier la &lt;a href=&quot;http://www.redmine.org/wiki/redmine/RedmineMigrate&quot; hreflang=&quot;en&quot;&gt;migration de Trac vers Redmine&lt;/a&gt;...&lt;/p&gt;


&lt;p&gt;Liens utiles :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.drinkingbird.net/blog/articles/2008/02/27/setting-up-a-redmine-site-on-ubuntu&quot; hreflang=&quot;en&quot;&gt;Setting up a Redmine site on Ubuntu&lt;/a&gt; (pour redmine, postgresql et mongrel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.boldr.fr/posts/installer-et-configurer-switchpipe&quot; hreflang=&quot;fr&quot;&gt;Installer et configurer switchpipe&lt;/a&gt; (pour la configuration nginx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://doc.ubuntu-fr.org/postgresql&quot; hreflang=&quot;fr&quot;&gt;Doc Ubuntu-fr : Postgresql&lt;/a&gt; pour postgresql&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Nginx, wouhaou :-)</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/04/16/Nginx-wouhaou-%3A-</link>
    <guid isPermaLink="false">urn:md5:51236c034013636e89cb9874edbb21c4</guid>
    <pubDate>Wed, 16 Apr 2008 21:50:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Trucs de geek</category>
        <category>django</category><category>nginx</category><category>postgresql</category><category>python</category>    
    <description>    &lt;p&gt;Juste pour dire que j'ai installé en quelques heures vendredi soir, &lt;a href=&quot;http://www.steinmetz.fr&quot; hreflang=&quot;fr&quot;&gt;Steinmetz.fr&lt;/a&gt; sur une part &lt;a href=&quot;http://www.gandi.net/hebergement&quot; hreflang=&quot;fr&quot;&gt;Gandi&lt;/a&gt; avec l'infrastructure &lt;a href=&quot;http://nginx.net/&quot; hreflang=&quot;en&quot;&gt;nginx&lt;/a&gt;, &lt;a href=&quot;http://www.postgresqlfr.org/&quot; hreflang=&quot;fr&quot;&gt;postgresql&lt;/a&gt; et python 2.5 (en lieu et place de Apache2/&lt;a href=&quot;http://www.modwsgi.org&quot;&gt;mod_wsgi&lt;/a&gt;, MySQL et Python 2.4).&lt;/p&gt;


&lt;p&gt;Pour le moment cela marche du tonerre sur une configuration en plus assez équivalente que celle que j'ai chez &lt;a href=&quot;http://www.sivit.fr/fr/details-vds.php?offre=VDS-256&quot; hreflang=&quot;fr&quot;&gt;Sivit&lt;/a&gt; (sauf que la part Gandi est moins chargée en sites pour le moment).&lt;/p&gt;


&lt;p&gt;La procédure de migration d'un site django est assez simple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Backup du site + bdd&lt;/li&gt;
&lt;li&gt;Transfert du site&lt;/li&gt;
&lt;li&gt;Installation de nginx &amp;amp; postgresql&lt;/li&gt;
&lt;li&gt;Configuration de nginx en reprenant ce &lt;a href=&quot;http://www.rkblog.rk.edu.pl/w/p/django-nginx/&quot; hreflang=&quot;en&quot;&gt;fichier de configuration&lt;/a&gt; (par contre la regexp sur les fichiers css &amp;amp; co ne fonctionne pas dans mon cas)&lt;/li&gt;
&lt;li&gt;Ajustement des paramètres de mon projet django (sur les chemins vers les templates et fichiers statiques)&lt;/li&gt;
&lt;li&gt;Lancement de mon application en mode fcgi&lt;/li&gt;
&lt;li&gt;Lancement de nginx&lt;/li&gt;
&lt;li&gt;Et on apprécie le résultat.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour être honnête, cela a été un peu plus compliqué &lt;img src=&quot;/journal/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Je ferais surement un article un peu plus détaillé &amp;amp; étendu plus tard pour ceux que cela peut intéresser...&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>