Cet article est destiné aux personnes qui rencontrent des difficultés (comme moi) à configurer correctement NGinx pour Dotclear en mode PATH_INFO.
J'ai eu quelques déboires avant de réussir à configurer NGinx pour ce site, voici les astuces de ma configuration que j'ai créée à partir d'informations estampillées sur la toile.

Si vous avez des idées d'amélioration, n'hésitez pas à laisser un commentaire. Je mettrai à jour cet article en fonction des retours reçus.



server {
        listen  80;
        server_name www.geeek.org;
 
        # Si vous n'exploitez pas les access_log, ils ne servent C  rien et consomment des IO.
        access_log off;

        index index.php index.html;
        root /var/www/www.geeek.org/public_html/;

        # Seuls Feedburner possC(de les doit d'accC(s aux flux RSS du site. 
        if ($http_user_agent !~ FeedBurner) {
                rewrite ^/feed/rss2$ http://feeds.feedburner.com/blog-de-geeek last;
                rewrite ^/feed/atom$ http://feeds.feedburner.com/blog-de-geeek last;
        }
 
        # Vous pouvez prC)ciser un deuxiC(me mot de passe si vous C*tes parano comme moi.
        location /admin {
                auth_basic "Restricted Access";
                auth_basic_user_file /etc/nginx/htpasswd/default;
                try_files $uri $uri/ /index.php;
        }

        # Bloque l'accC(s aux fichiers non publiables
        location ~ ^/(db|cache|plugins|inc) {
                deny all;
                return 404;
        }

        # MC)canisme de redirection avec le PATH_INFO
        location / {
                try_files $uri $uri/ @dotclear_path_info;
        }
 
        # Redirection de la requC*tes avec les paramC(tres en PATH_INFO
        location @dotclear_path_info {
                rewrite ^/(.*) /index.php/$1 last;
        }


        # Si script PHP simple
        location ~ \.php$ {
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

       # Si script PHP en mode PATH_INFO
        location ~ \.php(/.*)$ {
                # With php5-fpm:
                fastcgi_split_path_info  ^(.+\.php)(/.+)$;
                fastcgi_param PATH_INFO   $fastcgi_path_info;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}