Informations sur le système d'exploitation et le serveur:
J'avais précédemment installé php 5.3.x mais j'ai décidé de mettre à jour. J'ai d'abord désinstallé le 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, mais les a simplement téléchargés. J'ai vérifié des questions similaires ici dans stackoverflow mais aucune d'entre elles ne m'aide jusqu'à présent.
Pour mémoire, j'ai les lignes suivantes dans mon httpd.conf et 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.
MODIFIER:
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>
MODIFIER:
En enlevant le
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
Apache ne télécharge plus le fichier. Maintenant, Apache montre le code source, mais tout n’est pas juste une partie. J'ai ajouté
AddType text/html .php
mais pas de chance.
Le type approprié pour php est application/x-httpd-php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Assurez-vous également que votre module php est chargé
LoadModule php5_module modules/mod_php55.so
Lorsque vous configurez Apache, essayez d’afficher la page à partir d’un autre navigateur - j’ai eu des jours où Chrome cachait obstinément le résultat et continue de télécharger le code source tandis que dans un autre navigateur, c’est parfait.
Après avoir beaucoup lutté, j'ai finalement résolu le problème.
Si vous êtes invité à télécharger un fichier .php
au lieu de l'exécuter, voici la solution idéale: je suppose que vous avez déjà installé PHP5 et que vous obtenez toujours cette erreur.
$ Sudo su
$ a2enmod php5
Ça y est.
Mais si vous obtenez toujours l'erreur:
Config file php5.conf not properly enabled: /etc/Apache2/mods-enabled/php5.conf is a real file, not touching it
puis faites ce qui suit:
Il s'avère que les fichiers ne doivent pas être stockés dans mods-enabled
, mais plutôt dans mods-available
. Un lien symbolique doit ensuite être créé dans Mods-enabled pointant vers le fichier stocké dans mods-available.
Retirez d'abord l'original:
$ mv /etc/Apache2/mods-enabled/php5.conf /etc/Apache2/mods-available/
Créez ensuite le lien symbolique:
$ ln -s /etc/Apache2/mods-available/php5.conf /etc/Apache2/mods-enabled/php5.conf
J'espère que ton problème est résolu.
J'ai rencontré ce problème aujourd'hui et aucune des solutions décrites n'a fonctionné pour moi. Donc, voici une autre cause possible:
Si vous avez quelque chose comme
AddHandler x-mapp-php6 .php3 .php4 .php .phtml
dans un fichier .htaccess
de votre dossier de contenu Web, vos scripts PHP peuvent ne plus fonctionner. Dans mon cas, le serveur ne connaissait pas le type x-mapp-php6
, car ce fichier .htaccess
était quelque chose que j'avais importé d'un hôte différent lorsque j'ai transféré le contenu du site.
Le simple fait de supprimer la ligne AddHandler
du fichier .htaccess
a résolu le problème.
Cela peut se produire en raison des modules manquants 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 de modules tels que,
Sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json
S'il vous plaît jeter un oeil à vos directives addtype.
Il me semble qu'Apache dit au navigateur qu'il envoie un type de document application/php pour les scripts avec des extensions telles que .php5. En fait, Apache est censé dire au navigateur que le script génère du texte/html.
S'il vous plaît essayez ceci:
AddType text/html .php
En ce qui concerne la suggestion ci-dessus, vous devriez indiquer au navigateur que vous exportez un script PHP: Cela me semblait une idée inhabituelle. Je l'ai googlé et j'ai constaté qu'il y avait beaucoup de discussions à ce sujet sur le Web. Apparemment, dans certains cas, vous voudrez peut-être dire que vous envoyez un script PHP (même si Apache est supposé exécuter le script et émettre du texte/html), et il y a aussi des cas où le navigateur ne le fait tout simplement pas. reconnaître ce type de mime spécifique.
Effacer le cache de votre navigateur est toujours une bonne idée.
Si cela peut vous être utile, voici une copie de mon fichier /etc/httpd/conf.d/php.conf à partir d’un serveur exécutant CentOS 5.9:
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
Si votre .htaccess a quelque chose comme ça ... AddHandler application/x-httpd-php53 .php .php5 .php4 .php3 Puis commentez-le et essayez à nouveau de rafraîchir cela a fonctionné pour moi ...
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'avais 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 !!!
J'ai déjà eu un problème similaire après la mise à niveau de la version 5.3 à la version 5.4. Mais ma configuration est un peu différente, car j'utilise Debian et utilise fcgid pour servir les pages PHP, et non le module Apache/cgi PHP5 . qui est entré en collision avec ma configuration fcgid, et n'exécuterait plus 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 que le module php5_cgi était prêt, fcgid a pu servir à nouveau les pages PHP.
Si quelqu'un utilise php7 sous un environnement Linux
Assurez-vous d'activer php7
Sudo a2enmod php7
Redémarrez le service mysql et Apache
Sudo systemctl restart mysql
Sudo systemctl restart Apache2
Il est également possible que vous exécutiez nginx mais que votre php soit configuré pour fonctionner avec Apache. Pour vérifier, exécutez service nginx status
et service Apache2 status
pour voir lequel est en cours d'exécution. Si nginx est en cours d’exécution et pas Apache, exécutez simplement Sudo service nginx stop; Sudo service Apache2 start
et votre serveur servira les fichiers php comme prévu.
J'ai eu ce problème. Il s’est avéré que nginx et Apache étaient tous deux installés et démarraient automatiquement au démarrage. Le problème était que nginx se liait d’abord au port http, ce qui empêchait le démarrage d’Apache.
J'avais des symptômes similaires, encore une autre solution:
# 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.
J'ai passé deux jours à suivre cela et j'ai découvert que je mettais 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 PHP, donc je ne sais pas si ma solution est liée au changement de version que vous avez subi.
cela a résolu le problème pour moi (j'ai php7 installé):
Sudo apt-get installez libapache2-mod-php7.0
Service Sudo Apache2 redémarrer
Ok ... Je sais qu’il ya déjà 1.000.000 réponses à cette question - mais j’ai passé au moins 6 heures effectives à comprendre celle-ci; et je l'ai googlé des centaines de fois et je n'ai pas trouvé un seul post à ce sujet. J'ai donc pensé que j'ajouterais la solution à mon problème ici.
Si j'ai commenté ces deux lignes dans mes fichiers .conf dans le fichier /etc/Apache2/[[SERVER-NAME].conf
-:
php_admin_value engine Off
IPCComTimeout 31
Je n'ai aucune idée de ce qu'ils font ni de la façon dont ils y sont arrivés - mais cela se trouve dans chacun de mes fichiers .conf
-. Et si je supprime ces lignes et s’assure qu’il existe un lien symbolique dans /etc/Apache2/sites-enabled/
-, il ne télécharge pas le fichier index.php - et tout fonctionne normalement.
J'ai VirtualMin installé sur un Ubuntu 16.04 VPS. J'ai mis à niveau vers PHP version 7.2. Peu de temps après, j’ai mis à jour la version d’Ubuntu et jeté une erreur «Décalage du noyau: désactivé». Je devais donc supprimer la dernière version d'Ubuntu - et lorsque mon système d'exploitation a redémarré: BOOM! J'ai eu l'erreur que son message parle de: Pour chaque site sur mon VPS, il a simplement téléchargé index.php au lieu de le montrer.
J'ai essayé toutes sortes de choses:
a2enmod [MODULE_NAME]
. Et j'ai trouvé le nom du module en cherchant sur Google. J'ai dû activer environ 6 à 8 modules avant de passer l'étape de validation - et cela a pris quelques minutes avant que la mémoire cache ne soit épuisée - c'est donc une étape fastidieuse.Si rien de ce qui précède ne fonctionne,
essayez de commenter la ligne
SetHandler ....
et redémarrez Apache en utilisant
/etc/init.d/httpd restart
Ça devrait marcher!
J'ai ce genre de problème. Voici comment je le résous . Après avoir installé Apache, j’ai installé PHP à l’aide de cette commande.
Sudo apt-get install php libapache2-mod-php
il s'exécute correctement mais je demande le fichier .php à Apache, il donne sans exécuter le script PHP.
Ensuite, je vérifie que PHP est activé.
$ cd /etc/Apache2
$ ls -l mods-*/*php*
mais il n'a montré aucun résultat. Je vérifie les paquets PHP installés.
$ dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
Différents types de versions PHP installés sur mon ordinateur. Ensuite, je supprime certains paquets 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érifiez que le module PHP est chargé
$ a2query -m php7.0
si non activé avec:
$ Sudo a2enmod php7.0
Redémarrez le serveur Apache
$ Sudo systemctl restart Apache2
Enfin, je vérifie le processus PHP sur Apache
créer un fichier vide
Sudo vim /var/www/html/info.php
Ajoutez ce contenu à info.php & save.
<?php
phpinfo();
?>
Vérifiez sur le navigateur:
ça se voit correctement. Je pense que cela aidera n'importe qui.
J'ai eu un problème similaire à l'OP lors de la mise à niveau de php5 à partir d'une version antérieure, vers la version 5.5.9, qui est la version installée avec la menthe 17.
J'exécute une configuration LAMP sur une machine de mon réseau local, que j'utilise pour prévisualiser les modifications apportées aux sites Web avant de les télécharger sur le serveur réel. Je maintiens donc un miroir local parfait du site actuel.
Après la mise à niveau, les fichiers qui s'exécutent et s'affichent parfaitement sur le site réel ne s'affichent pas ou affichent uniquement le code HTML sur la machine locale. PHP n'a pas été analysé. La commande phpinfo () fonctionnait, alors je savais que php fonctionnait autrement. Le journal n'a généré aucune erreur. Voir la source de la page m'a montré le code PHP actuel.
J'avais construit une page test.php contenant le code suivant:
<?php
phpinfo();
?>
Cela a fonctionné. Ensuite, j'ai découvert que lorsque j'ai remplacé <?php
par <?
, la commande ne fonctionnait plus. Tous mes sites php utilisent <?
au lieu de <?php
, ce qui n'est peut-être pas idéal, mais c'est la réalité. J'ai résolu le problème en allant dans/etc/php5/Apache2, en cherchant "short_open_tag" et en changeant la valeur de Off à On.
Si vous avez virtualmin, essayez de commenter ces lignesdans votre configuration Apache dans/etc/Apache2/sites-available
#RemoveHandler .php
#RemoveHandler .php7.0
#php_admin_value engine Off
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
J'ai eu ce problème et si vous n'avez jamais joué avec les paramètres de configuration de votre serveur, alors votre problème est de 90% dans votre .htaccess fichier
Vous pouvez soit modifier .htaccess file LOCALLY, soit le supprimer (LOCALLY)