web-dev-qa-db-fra.com

Pourquoi mes fichiers PHP sont-ils affichés en texte brut?)

J'écris des applications PHP utilisant PHP depuis un moment dans WAMP. Maintenant, j'installe PHP et Apache Serveur HTTP séparément sur mon PC de travail. J'ai installé PHP 5 et le dernier Apache. Je vais sur localhost et je vois que ça marche!

Maintenant, j'ajoute un fichier nommé test.php qui affiche:

<?php
    phpinfo();
?>

Mais dans le navigateur, il n’affiche que du texte brut. Y a-t-il quelque part que je lui ai explicitement dit d'utiliser PHP 5?

72
iamjonesy

Vous devrez ajouter ceci à la configuration de votre serveur:

AddType application/x-httpd-php .php

En supposant que vous ayez correctement installé PHP), ce qui peut ne pas être le cas, car cela ne fonctionne pas normalement normalement après l'installation.

Il est tout à fait possible que vous deviez également ajouter le fichier php .so/.dll à votre configuration Apache à l'aide d'une directive LoadModule (généralement dans httpd.conf).

72
Kris

Vous devez installer la bibliothèque PHP 5 pour Apache.

Pour Debian et Ubuntu:

apt-get install libapache2-mod-php5

Et redémarrez Apache:

service Apache2 restart
75
dav

Vous devez configurer Apache (le serveur Web) pour qu'il traite PHP en tant que PHP. Vérifiez la configuration d'Apache. Vous devez charger le module (le chemin peut être différent sur votre système):

LoadModule php5_module "c:/php/php5Apache.dll"

Et vous devez également indiquer à Apache comment traiter avec PHP:

AddType application/x-httpd-php .php

Voir la documentation pour plus de détails .

13
Piskvor

Encore une autre raison (pas pour ce cas, mais peut-être que ça va sauver quelques nerfs pour quelqu'un) est que PHP 5.5 balises ouvertes courtes <? phpinfo(); ?>) sont désactivées par défaut.

Ainsi, l’interprète PHP traite le code entre des balises courtes sous forme de texte brut. Dans les versions précédentes PHP, cette fonctionnalité était activée par défaut. Le nouveau comportement peut donc être un un peu mystérieux.

12
Roman Bekkiev

Comme moi, vous avez peut-être également installé php-cgi avant Apache et, ce faisant, il ne configure pas correctement Apache pour exécuter PHP. Il a été impossible de supprimer PHP entièrement et de réinstaller semble-t-il). problème.

6
user3604332

Vous devrez ajouter des gestionnaires dans Apache pour gérer le code php.

Éditer par la commande Sudo vi /etc/httpd/conf/httpd.conf

Ajouter ces deux gestionnaires

  AddType application/x-httpd-php .php
  AddType application/x-httpd-php .php3

à la position spécifiée ci-dessous

<IfModule mime_module>

 AddType application/x-compress .Z
 AddType application/x-gzip .gz .tgz

--Add Here--


</IfModule>

pour plus de détails sur les gestionnaires AddType

http://httpd.Apache.org/docs/2.2/mod/mod_mime.html

4
Satyanarayana

Utilisez-vous le mod userdir?

Dans ce cas, le problème est que PHP5 semble désactiver par défaut les scripts en cours d'exécution à partir de cet emplacement et que vous devez commenter les lignes suivantes:

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

dans /etc/Apache2/mods-enabled/php5.conf (sur un système Ubuntu)

3
Henrik Sommerland