$_SERVER['DOCUMENT_ROOT'] non definita con PHP in modalità FastCGI su Windows 2003 Server (IIS 6)

Se si installa PHP in modalità FastCGI su Windows 2003 (IIS 6) la variabile $_SERVER['DOCUMENT_ROOT'] non sarà disponibile nell'ambiente PHP.

Per ovviare a questo incoveniente sarà sufficiente eseguire le operazioni sotto:

Creare il file fastcgi.php con il seguente contenuto:

<?php
if(!isset($_SERVER["DOCUMENT_ROOT"]) || empty($_SERVER["DOCUMENT_ROOT"])) {
    $_SERVER["DOCUMENT_ROOT"] = substr($_SERVER['PATH_TRANSLATED'], 0, strlen($_SERVER['SCRIPT_NAME']) * - 1);
}    

(Notare la mancanza del tag di chiusura PHP. Questo assicura che tutto il codice è interpretato come PHP e non c'è output di new line o spazi).

Salvare il file nella cartella di installazione di PHP. Se si è installato PHP utlizzando la Web Platform di Microsoft allora la cartella predefinita sarà: C:\Programmi\PHP. Supponiamo sia questo il caso e salviamolo lì.

Configurare la direttiva auto_prepend_file nel php.ini nel seguente modo:

auto_prepend_file = C:\Programmi\PHP\fastcgi.php

Adesso gli script PHP potranno utilizzare la variabile $_SERVER['DOCUMENT_ROOT'] senza problemi.