PHP5 et EasyPhp2.0 : PHP ne fonctionne pas

Résolu/Fermé
MGD - 2 juil. 2008 à 09:34
 MGD - 15 avril 2010 à 11:07
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.

5 réponses

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
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
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
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
2 juil. 2008 à 09:37
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
2 juil. 2008 à 10:51
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
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
dans php.ini
la ligne short_open_tag = Off transformé en short_open_tag = On
0