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.

2voto

MedoAlmasry Points 314

Au cas où quelqu'un utiliserait php7 sous un environnement Linux

Assurez-vous d'activer php7

sudo a2enmod php7

Redémarrer le service mysql et Apache

sudo systemctl restart mysql
sudo systemctl restart apache2

1voto

Craig Smilovitz Points 13

J'ai passé deux jours à chercher ce problème et j'ai découvert que je plaçais mes scripts PHP dans le mauvais répertoire.

Sur mon installation Ubuntu standard, je mettais les scripts dans /var/www . Ils auraient dû être dans /var/www/html .

Je viens de commencer à travailler sur PHP, donc je ne sais pas si ma solution est liée au changement de version que vous avez subi.

1voto

Marouen Mhiri Points 1264

Cela a résolu le problème pour moi (j'ai installé php7) :

sudo apt-get install libapache2-mod-php7.0

sudo service apache2 restart

1voto

dshepherd Points 491

J'ai eu ce problème. Il s'est avéré que j'avais à la fois nginx et apache installés et démarrant automatiquement au démarrage. Le problème était que nginx se liait d'abord au port http, ce qui empêchait apache de démarrer.

1voto

raindrop Points 408

Il est également possible que nginx fonctionne mais que votre php soit configuré pour fonctionner avec apache. Pour vérifier, exécutez service nginx status y service apache2 status pour voir lequel fonctionne. Dans le cas où nginx est en cours d'exécution et qu'apache ne l'est pas, il suffit d'exécuter sudo service nginx stop; sudo service apache2 start et votre serveur va maintenant servir les fichiers php comme prévu.

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