PHP5 et EasyPhp2.0 : PHP ne fonctionne pas

Résolu
MGD -  
 MGD -
Bonjour,

Je viens d'installer un nouveau serveur. Jusqu'à présent j'utilisais sans problème EasyPhp 1.8 (Apache 1.3, PHP 4.3, MySql 4.1). J'ai voulu passer à une version plus récente et j'ai téléchargé EasyPhp 2.01b (Apache 2.2, PHP 5.2, MySql 5.2)

Après l'installation, j'ai juste édité httpd.conf pour faire pointer DocumentRoot sur le répertoire où se trouvent les fichiers du site, pour faire un essai, comme je faisais avec les versions précédentes d'EasyPhp.

Le serveur web fonctionne bien, mais stupeur : Le code PHP n'est pas interprété ! On retrouve le code php dans le source de la page reçue par le navigateur (cette page fonctionne pourtant sans problème sur un autre serveur sous EasyPhp 1.8)

J'ai bien vérifié que le module php était chargé (LoadModule php5_module "${path}/php5/php5apache2_2.dll"). De toute façon c'est normalement la configuration par défaut.

Là, je suis un peu sec, n'ayant jamais eu ce problème auparavant. Je ne sais pas trop où chercher. J'ai exploré php.ini pour essayer de trouver une anomalie quelconque, mais tout est identique à ce que j'avais avec les versions précédentes.

Si quelqu'un connaît la raison du problème, qu'il n'hésite pas à m'en faire part. Merci d'avance.
Configuration: Windows XP
Firefox 3.0

5 réponses

  1. MGD
     
    J'ai trouvé !

    Il s'agit du paramètre short_open_tag, qui doit être à On dans php.ini pour pouvoir utiliser les balises simples (dont "<?").
    Sous EasyPhp 1.8, il est à On par défaut.
    Sous EasyPhp 2.0, il est à Off par défaut.

    C'est tellement évident ! (quand on le sait...)
    3
  2. MGD
     
    Effectivement ça marche avec "<?php"

    Cela veut dire que PHP5 ne supporte plus les balises d'ouverture "<?" simples ???
    Il y a des millions de pages à réécrire sur le web !
    Dont plusieurs centaines des miennes...

    Bonjour la compatibilité ascendante !
    0
  3. MGD
     
    Les nouvelles versions de EasyPhp utilisent les options "strictes" des langages, en particulier celles de PHP5. Dans ces conditions, l'option short_open_tag est à off

    Du coup, toutes les balises incomplètes ne sont pas interprétées.
    en particulier, <?, qui auparavant marquait l'ouverture d'un script PHP, n'est plus reconnu. Il faut mettre la balise complète, <?php

    Il est souhaitable de mettre à jour toutes les anciennes pages, qui seront ainsi conformes aux nouveaux standards PHP. Un bon cherche&remplace (avec des expressions régulières pour éliminer des risques de confusion éventuels) fait l'affaire.

    Cependant, il est possible de tout laisser en l'état et de revenir aux errements anciens de PHP4. Dans le fichier php.ini, il suffit de remplacer la ligne
    short_open_tag = Off

    par
    short_open_tag = On
    0
  4. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    il faut ouvrir ta balise php comme ca:
    <?php

    et non pas comme ca <?

    De plus, il faut arreter d utiliser php, regarde de quand data la derniere mise a jour ! c est encore une version beta

    telechargez wamp ou qqch qui est encore entretenu
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    il etait deja fortement recommandé de les utiliser avant !
    je croi que c est modifiable quelque part... je sais pas ou ;)

    c est surement ppour eviter des conflicts avec d autres languages dynamiques qui vouddraient utiliser <?

    merci de mettre le sujet en resolu
    -1
    1. MGD
       
      il etait deja fortement recommandé de les utiliser avant !
      C'est vrai, mais au passage de php3 à php4 j'avais pris l'habitude de ne plus les mettre.

      En y réfléchissant bien, c'est forcément configurable : je maintiens une dizaine de sites, chez des herbergeurs aussi bien professionnels (Online, MagicOnLine) que "amateurs" (Free). Tous ces hébergeurs sont passés à Apache2 et Php5.

      Or mes pages continuent de fonctionner correctement chez ces hébergeurs, avec des balises php simples (<?)
      Maintenant, où se trouve LA ligne qui règle ça dans les centaines de lignes de httpd.conf et php.ini ???
      0
    2. ninjuki
       
      dans php.ini
      la ligne short_open_tag = Off transformé en short_open_tag = On
      0