IIS l'ho già arrestato perché compete con la stessa porta (80) cui si collega Apache (non saprei come fare ad assegnargli una porta diversa quindi l'ho stoppato). Quindi non credo sia questo il problema e poi ho inserito altri script, apparentemente simili, che funzionano perfettamente. Ad esempio per conoscere le variabili del server:
<?php

// Variabili predefinite - Esempio 9-2
//----------------------------------

echo "PHP_SELF: " .$_SERVER['PHP_SELF'];
echo "
SERVER_NAME: " . $_SERVER['SERVER_NAME'];
echo "
SERVER_SOFTWARE: " . $_SERVER['SERVER_SOFTWARE'];
echo "
SERVER_PROTOCOL: " . $_SERVER['SERVER_PROTOCOL'];
echo "
HTTP_USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'];
echo "
REMOTE_ADDR: " . $_SERVER['REMOTE_ADDR'];
echo "
SERVER_PORT: " . $_SERVER['SERVER_PORT'];
echo "
SCRIPT_NAME: " . $_SERVER['SCRIPT_NAME'];

?>

Mi dà:
PHP_SELF: /phpbook/esempio9-2.php
SERVER_NAME: localhost
SERVER_SOFTWARE: Apache/1.3.31 (Win32) PHP/4.3.8
SERVER_PROTOCOL: HTTP/1.1
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
REMOTE_ADDR: 127.0.0.1
SERVER_PORT: 80
SCRIPT_NAME: /phpbook/esempio9-2.php

E' più chiaro il problema adesso?