J'ai récemment installé PHP 5.2.9-2 sur IIS 7 sous Windows Server 2008 SP2. La plupart des choses semblent fonctionner correctement - PHP fonctionne très bien, à peu près tout le code PHP fonctionne parfaitement ... SAUF pour les pages par défaut. Tout document par défaut (index.php) n'est pas interprété par PHP et la page affiche simplement le code PHP sous-jacent dans le navigateur. Meilleur exemple - deux pages (index.php + phpinfo.php) avec exactement le même code: <? Php phpinfo(); ? >Document PHP par défaut (index.php) affichant le code en texte brut dans IIS7
http://mysite.com/test/ -> "? Php < phpinfo(); >" (affiché en texte clair) http://mysite.com/test/index.php -> "? Php < phpinfo(); >" (affiché en texte clair)
http://mysite.com/test/phpinfo.php -> Une bonne "bleu/gris" info page PHP
Ce qui est étrange est: la racine de mon site (http://mysite.com) interprète PHP très bien via son document par défaut, index.php.
J'ai configuré le site via les "meilleures pratiques" (http://iis.net/fastcgi/configuration). PHP est en cours d'exécution via FastCGI. Index.php est le seul type de document par défaut. "Mysite" est logé dans un sous-répertoire du lecteur racine, et IUSR a des autorisations tout au long. Handler Mappings affiche PHP via FastCGI comme entrée principale pour * .php.
Googling cela pendant des heures, ont vu d'autres avec des problèmes très similaires, mais pas de résolution.
Merci!
Si vous renommez l'index.php en quelque chose d'autre, par ex. test.php, ça marche quand vous y accédez sur http://mysite.com/test/test.php? – Matt
Oui, index.php est le même appel phpinfo() d'une ligne que dans phpinfo.php. Nommez le fichier anything_in_the_world.php et cela fonctionne. Appelez-le "index.php", et ce n'est pas le cas - tout le code PHP est affiché en clair. –