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.

5voto

Noushad Points 1422

Cela peut être dû à l'absence de modules requis pour votre php. En supposant que vous avez installé php7, recherchez les modules php7 disponibles en utilisant

sudo apt-cache search php7-*

La commande ci-dessus listera tous les modules PHP7 disponibles pour l'installation. Vous pouvez commencer l'installation des modules comme,

sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json

3voto

Ladislao Garcia Points 62

J'ai le même problème. Apache ne charge pas les fichiers php d'un certain site web, il vient de le télécharger. J'ai lu ce post et les réponses et j'ai vu que j'ai mis cette ligne à la dernière place du fichier .htaccess :

AddHandler x-mapp-php5.5  .php

Je l'ai commenté et tout fonctionne bien.

Merci à tous ! !!

3voto

freak0 Points 63

Après la mise à jour de PHP vers 7.3, les scripts de PHP sont exécutés avec l'option www-data au lieu de $USER comme avant.

J'ai dû réinstaller et activer PHP-FPM :

sudo apt-get install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo service apache2 restart
sudo a2enconf php7.3-fpm
sudo service apache2 restart

Pour s'assurer que tout était ok pour Virtualmin j'ai utilisé le Revérifier la configuration magicien /virtual-server/check.cgi , sous Vitualmin / Paramètres du système .

Après cela, Apache/PHP téléchargeait les fichiers php au lieu de les exécuter. J'ai donc dû modifier /etc/apache2/mods-available/php7.3.conf pour commenter la ligne SetHandler application/x-httpd-php comme ci-dessous :

<FilesMatch ".+\.ph(ar|p|tml)$">
#    SetHandler application/x-httpd-php
</FilesMatch>

Après avoir redémarré Apache, cela a résolu mon problème, j'espère que cela vous aidera.

Prenez également soin du cache du navigateur.

Mon système :

Ubuntu          16.04.6 LTS
Webmin version      1.932
Usermin version     1.780
Virtualmin version  6.08
Apache version      2.4.41
PHP versions        7.3.12
PHP-FPM         7.3.12 Server

2voto

derchris Points 275

J'ai déjà eu un problème similaire, après la mise à jour de la 5.3 à la 5.4. Mais ma configuration est un peu différente, car je suis sous Debian et j'utilise fcgid pour serveur les pages PHP, et non le module PHP5 apache/cgi. Ainsi, après la mise à jour, php5_cgi a également été installé, ce qui est entré en collision avec ma configuration fcgid, et ne pouvait plus exécuter les fichiers PHP.

J'ai dû désactiver le module Apache et redémarrer Apache.

a2dismod php5_cgi
/etc/init.d/apache2 restart

Une fois le module php5_cgi éliminé, fcgid a pu à nouveau servir des pages PHP.

2voto

qbolec Points 389

J'avais les mêmes symptômes, mais une autre solution : dans /etc/apache2/mods-enabled/php5.conf il y avait un conseil utile dans le commentaire, que j'ai suivi :

# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.

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