PHP5 m'a mis le souk dans IIS/PHP4

Paul
Invité n'ayant pas de compte PHPfrance

19 déc. 2007, 18:27

Bonjour,

J'utilise pour du développement, un serveur IIS 5.1 sur un Windows XP. Ce serveur est paramétré pour utiliser PHP4 en mode CGI (parce que le serveur de production est paramétré comme ça). Il fonctionne depuis 2 ans sans problème.

Pour effectuer des tests, j'ai reparamétré la semaine dernière un répertoire virtuel comme devant utiliser PHP5 à la place de PHP4 (changement du cgi sur l'extension .php juste sur ce répertoire virtuel) avec utilisation de ZendOptimizer 3.3. Ca fonctionne, mais ça m'a induit un comportement étrange dans le fonctionnement du serveur PHP4 : les fichiers PHP sans entête HTML ne sont plus affichés directement dans le browser, mais sont considérés comme des fichiers à télécharger.

Par exemple, ce fichier test.php s'affiche correctement
<html>
<?php echo "Test"."<br>" ?>
</html>
Par contre, ce fichier test2.php me met comme message (sous IE et sous Firefox) :
<?php echo "Test"."<br>" ?>
Téléchargement de fichier
voulez-vous ouvrir ou enregistrer ce fichier ?
Nom : test.php
type : php_auto_file

C'est particulièrement gênant pour tous les messages d'erreur qui ne s'affiche plus directement dans le browser, mais qui doivent être téléchargés.

Premièrement, J'ai effacé le répertoire virtuel qui redéfinissait PHP5 sur l'extension .php, mais sans que cela change quoique ce soit.

Deuxièmement : dans le registre du serveur, j'avais l'extension .php associée à (valeur par défaut) php_auto_file. J'ai remis à vide (comme pour php3), mais maintenant, mon fichier test2.php s'affiche comme un fichier texte et pas comme un fichier html. J'ai donc :

Code : Tout sélectionner

Test<br>
ce qui est mieux, mais pas encore exactement ça.

Que dois-je faire pour retrouver un affichage "normal" des fichiers php sans entête html ?

Merci

Del-Mar
Invité n'ayant pas de compte PHPfrance

25 févr. 2008, 13:58

Même problème ... J'espere qu'il y'aura une réponse de la part de quelqu'un très prochainement :)

ViPHP
ViPHP | 4039 Messages

25 févr. 2008, 15:25

je n'ais jamais tenté d'installer php en cgi, et d'ailleurs je l'ais toujours déconseillé (question de performance, et de sécurité aussi, mais je ne connais pas les détails).

Tout ce que je trouve donc à dire c'est de tenter le mode ISAPI, voir si le problême reste..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Paul
Invité n'ayant pas de compte PHPfrance

29 févr. 2008, 11:30

@Berzemus

Si le serveur de production est en cgi, c'est justement pour des problèmes de performances. En isapi, sous Windows/IIS/PHP 4 nous avons constaté qu'au bout de quelques jours, le site provoquait des erreurs PHP de time-out de 30 secondes dépassées de plus en plus souvent, jusqu'à rendre le site inutilisable. Un reboot et c'était parti pour quelques jours de tranquillité.

Après avoir osculté le code source dans tous les sens sans succès, la seule solution que nous ayons trouvée (vue sur différents forums) a été de passer en cgi, ce qui a résolu le problème instantanément. Comme un certain nombre de valeurs système $_SERVER sont différentes en cgi et en isapi, c'est pour ça que nous avons passé le serveur de développement en cgi également.

Pour cette histoire de conflit avec PHP5, je n'ai pas trouvé de solution autre que de remettre le serveur de développement en isapi. Sauf quand je travaille sur ces variables $_SERVER (heureusement c'est rare), auquel cas, je repasse momentanément en cgi avec tous les problèmes d'affichage des messages d'erreur. Mais bon, ce n'est pas pratique, ni très satisfaisant.

Et je n'ai vu nulle part de solution à ce problème. :(

ViPHP
ViPHP | 4039 Messages

29 févr. 2008, 13:33

et upgrader vers IIS6 ?

IIS5 est, à ce que j'en sais, une horreur point de vue sécurité, et il faut bien le bidouiller pour combler les failles de sécurité. Sauf si c'est en interne, bien entendu.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.