On commence donc par un exemple de fichier /etc/nginx/sites-enabled/

server {
        listen          1.2.3.4:80;
        server_name     mon-pti-site.com;

        access_log      /var/log/nginx/monptisite.access.log;
        error_log       /var/log/nginx/monptisite.errors.log;

        root   /var/www/monptisite;

        location / {
                index index.html index.htm index.php;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME /var/www/root/monsite$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
        # favico
        location /favico.ico {
                empty_gif;
        }
}

ici, on définit un host mon-pti-site.com, pour lequel nginx écoutera sur l'ip 1.2.3.4 sur le port 80.
Afin d'utiliser php en CGI, on utilise encore la directive location et une regex
On y définit index.php/htm/html en page d'index
Histoire d'utiliser une super feature de nginx, on s'amuse à rajouter une image vide lorsqu'un client demande favico.ico :D

Puis on va éditer le fichier /etc/nginx/fastcgi_params dont nginx va avoir besoin pour du CGI.

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
fastcgi_index index.php;

Enfin, on se créer un "demon" php-cgi qui va tourner en permanence, écouter sur un port précis et executer tout script PHP que nginx lui passera. Pour ce faire, on a besoin d'installer le mode CGI pour php, puis crééer 2 fichiers pour gérer notre démon.

aptitude install php5-cgi

Au cas ou, le fichier de conf pour le cgi est par défaut dans /etc/php5/cgi/php.ini ;)

Le 1er fichier va donner les options générales: /etc/default/php-fastcgi

START=yes
# Which user runs PHP? (default: www-data)
EXEC_AS_USER=www-data
# Host and TCP port for FASTCGI-Listener (default: localhost:9000)
FCGI_HOST=127.0.0.1
FCGI_PORT=9000
# Environment variables, which are processed by PHP
PHP_FCGI_CHILDREN=2
PHP_FCGI_MAX_REQUESTS=1000

On définit ici que php-cgi tournera avec l'utilisateur www-data, aura 3 instances (la principale, et 2 enfants), que chaque instance peut accepter 1000 requêtes, et que le démon écoutera sur 127.0.0.1 sur le port 9000.
Le 2è va être le script d'init. (je l'ai trouvé sur le net après quelques recherches)

... je ne vais pas vous mettre le contenu ici car il est assez gros et bien chiadé :D
Voici le lien direct pour le télécharger

(Et grand merci à son créateur, Kurt Zankl qui l'a publié ici :) )

Une fois dézippé, mettez le dans /etc/init.d puis n'oubliez pas de le lancer, et de faire un update-rc.d pour le lancer automatiquement au démarrage.

chmod +x /etc/init.d/php-fastcgi
/etc/init.d/php-fastcgi start
update-rc.d -f php-fastcgi defaults

Finalement, on relance nginx pour valider

/etc/init.d/nginx restart

(on peut aussi lui dire de recharger sa config sans couper le service; ça marche plutôt bien, contrairement à apache :) )

/etc/init.d/nginx reload

maintenant, faites vous une petite page php contenant un tuc du style

<?php phpinfo(); ?>

puis appelez cette page depuis votre navigateur pour vérifier que tout fonctionne bien.