100 votes

Apache télécharge les fichiers php au lieu de les afficher

Informations sur le système d'exploitation et le serveur :

  • CentOS 6.4 (Final)
  • Apache 2.2.15
  • PHP 5.5.1

J'avais précédemment installé php 5.3.x mais j'ai décidé de faire une mise à jour. J'ai d'abord désinstallé php 5.3.x, puis installé php 5.5.1, mais une fois l'installation terminée, Apache n'a pas analysé les fichiers php, il les a simplement téléchargés. J'ai vérifié des questions similaires ici dans stackoverflow mais aucune d'entre elles ne m'a aidé jusqu'à présent.

Pour mémoire, j'ai les lignes suivantes dans mon httpd.conf et mon php.conf qui devraient faire fonctionner php mais ne le font pas :

AddHandler application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php-source .phps
AddHandler php5-script .php

J'apprécierais vraiment toute aide. Merci.

EDITAR:

J'ai ces lignes dans le php.conf

<IfModule !worker.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

EDITAR:

En retirant le

AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml

apache ne télécharge plus le fichier. Maintenant, apache affiche le code source, mais pas en totalité, juste une partie. J'ai ajouté

AddType text/html .php

mais pas de chance.

0voto

PHP56

vim /etc/httpd/conf/httpd.conf

LoadModule php5_module        libexec/apache/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

0voto

J'ai ce genre de problème. Voici comment je l'ai résolu. Après avoir installé Apache puis j'ai installé PHP en utilisant cette commande.

sudo apt-get install php libapache2-mod-php

il s'exécute correctement mais je demande .php à partir d'Apache, il donne sans exécuter le fichier PHP script.

Ensuite, je vérifie que PHP est activé.

$ cd /etc/apache2
$ ls -l mods-*/*php*

mais ça n'a donné aucun résultat. J'ai vérifié les paquets PHP installés.

$ dpkg -l | grep php| awk '{print $2}' |tr "\n" " "

Différents types de PHP versions installées sur mon ordinateur. Ensuite, je supprime certaines PHP de ma liste précédente, en utilisant apt-get purge .

sudo apt-get purge libapache2-mod-php7.0 php7.0 php7.0-cli php7.0-common php7.0-json

Je réinstalle PHP

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Vérifier que le module PHP est chargé

$ a2query -m php7.0

si elle n'est pas activée avec :

$ sudo a2enmod php7.0

Redémarrer Apache serveur

$ sudo systemctl restart apache2

Enfin, je vérifie PHP processus sur Apache

créer un fichier vide

sudo vim /var/www/html/info.php

Ajoutez ce contenu à info.php et enregistrez.

<?php
  phpinfo();
?>

Vérifiez sur le navigateur :

http://localhost/info.php

Je pense que cela aidera tout le monde.

0voto

clint Points 708

Lorsque j'ai mis à jour de PHP 7.2 à PHP 7.4, j'ai eu le même problème. Cela a fonctionné en faisant ce qui suit:-

  1. En [domain].conf file a commenté ce qui suit :

    php_admin_value engine Off

    Et ajouté :

    AddType  application/x-httpd-php-source  .phps
    AddType text/html .php
  2. Désactiver le mod 7.2 et activer le mod 7.4 en suivant les instructions suivantes :

    a2dismod php7.2
    a2enmod php7.4
  3. En /etc/apache2/mods-enabled/php7.4.conf le commentaire suivant :

    SetHandler application/x-httpd-php
    php_admin_flag engine Off

0voto

mevers303 Points 348

Pour les personnes qui ont trouvé cet article de Google près de 6 ans dans le futur (et au-delà !), vous pouvez rencontrer ce problème avec Apache 2 et PHP 7 tout en utilisant également l'option UserDir module.

Une autre cause possible de ce problème pourrait être que vous essayez d'exécuter le script dans un "répertoire utilisateur" à partir de l'adresse de l'utilisateur. UserDir module. L'exécution de scripts PHP dans les répertoires utilisateurs est désactivée par défaut. Vous rencontrerez ce problème si le scripts se trouve dans le répertoire de l'utilisateur. public_html dans votre dossier personnel et vous essayez d'y accéder à partir de http://localhost/~your_username .

Pour résoudre ce problème, ouvrez /etc/apache2/mods-enabled/php7.2.conf . Vous devez commenter ou supprimer le bloc de balises en bas qui dit

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

0voto

Black Points 3971

J'ai eu le même problème après avoir utilisé zypper rm php* pour désinstaller PHP et le réinstaller avec zypper in php7 php7-gd php7-gettext php7-mbstring php7-mysql php7-pear

J'ai résolu le problème en activant le module apache2 et en redémarrant le serveur web :

a2enmod php7 && service apache2 restart

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X