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 mettre à niveau. 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, 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 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 n'importe quelle aide. Je vous remercie.
ÉDITER:
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>
ÉDITER:
En supprimant 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 tout simplement une partie. J'ai ajouté
AddType text/html .php
mais pas de chance.
httpd.conf
si le module php est commenté ou nonRéponses:
Le AddType correct pour php est application / x-httpd-php
Assurez-vous également que votre module php est chargé
Lorsque vous configurez Apache, essayez d'afficher la page à partir d'un autre navigateur - il y a des jours où Chrome cache obstinément le résultat et continue de télécharger le code source alors que dans un autre navigateur, tout va bien.
la source
/etc/httpd/conf/httpd.conf
Je suis tombé sur ce problème aujourd'hui et aucune des solutions décrites n'a fonctionné pour moi. Voici donc une autre cause possible:
Si vous avez quelque chose comme
dans un
.htaccess
fichier de votre dossier de contenu Web, cela peut entraîner l'arrêt de vos scripts PHP. Dans mon cas, le serveur ne connaissait pas lex-mapp-php6
type, car ce.htaccess
fichier était quelque chose que j'ai importé d'un hôte Web différent lorsque j'ai transféré le contenu du site Web.Le simple fait de supprimer la
AddHandler
ligne du.htaccess
fichier l'a résolu pour moi.la source
AddHandler application/x-httpd-php54 .php54 .php
qu'il fallait supprimer.Après avoir beaucoup lutté, j'ai finalement résolu le problème.
Si vous êtes invité à télécharger un
.php
fichier au lieu de l'exécuter, voici la solution parfaite: je suppose que vous avez déjà installé PHP5 et que vous obtenez toujours cette erreur.Ça y est.
Mais si vous obtenez toujours l'erreur:
puis procédez comme suit:
Il s'avère que les fichiers ne doivent pas être stockés
mods-enabled
, mais plutôt stockésmods-available
. Un lien symbolique doit alors être créé dans mods-enabled pointant vers le fichier stocké dans mods-available.Retirez d'abord l'original:
Créez ensuite le lien symbolique:
J'espère que votre problème est résolu.
la source
Veuillez jeter un œil à vos directives addtype.
Il me semble qu'Apache dit au navigateur qu'il envoie un document de type application / php pour les scripts avec des extensions comme .php5. En fait, Apache est censé indiquer au navigateur que le script génère du texte / html.
Veuillez essayer ceci:
Concernant la suggestion ci-dessus que vous devriez dire au navigateur que vous sortez un script PHP: Cela m'a semblé être une idée inhabituelle. Je l'ai googlé et j'ai trouvé qu'il y avait pas mal de discussions à ce sujet sur le Web. Apparemment, il y a des cas où vous voudrez peut-être dire que vous envoyez un script PHP (même si Apache est censé exécuter le script et émettre du texte / html,) et il y a aussi des cas où le navigateur ne reconnaît tout simplement pas ce Mime spécifique Type.
Effacer le cache de votre navigateur est toujours une bonne idée.
Au cas où cela serait utile, voici une copie de mon fichier /etc/httpd/conf.d/php.conf à partir d'un serveur exécutant CentOS 5.9:
la source
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
La commande ci-dessus listera tous les modules PHP7 disponibles pour l'installation. Vous pouvez commencer l'installation de modules comme,
la source
Si votre .htaccess a quelque chose comme ça ... Application AddHandler / x-httpd-php53 .php .php5 .php4 .php3 puis commentez-le et essayez à nouveau d'actualiser cela a fonctionné pour moi ...
la source
J'ai le même problème. Apache ne charge pas les fichiers php à partir d'un certain site Web, il vient de les 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:
Je l'ai commenté et tout fonctionne bien.
Merci à tous !!!
la source
J'ai déjà eu un problème similaire, après la mise à niveau de 5.3 à 5.4. Mais ma configuration est un peu différente car j'exécute Debian et j'utilise fcgid pour serveur les pages PHP, et non le module apache / cgi PHP5. Donc, après la mise à niveau, il a également installé php5_cgi, qui est entré en collision avec ma configuration fcgid, et n'exécutait plus les fichiers PHP.
J'ai dû désactiver le module Apache et redémarrer Apache
Une fois le module php5_cgi éliminé, fcgid a pu à nouveau servir les pages PHP.
la source
J'ai eu des symptômes similaires, encore une autre solution: dans /etc/apache2/mods-enabled/php5.conf, il y avait un conseil utile dans le commentaire, que j'ai suivi:
la source
Au cas où quelqu'un utilise php7 sous un environnement Linux
Assurez-vous d'activer php7
Redémarrez le service mysql et Apache
la source
Après la mise à jour de PHP vers la version 7.3, les scripts PHP étaient exécutés avec www-data au lieu de $ USER comme auparavant.
J'avais besoin de réinstaller et d'activer PHP-FPM:
Pour m'assurer que tout allait bien pour Virtualmin , j'ai utilisé l' assistant Re-Check Configuration
/virtual-server/check.cgi
, sous Vitualmin / System Settings .Après cela, Apache / PHP téléchargeait des fichiers php au lieu de les exécuter. Je devais donc modifier
/etc/apache2/mods-available/php7.3.conf
pour commenter la ligneSetHandler application/x-httpd-php
comme ci-dessous:Après avoir redémarré Apache, cela a résolu mon problème, espérons cette aide.
Prenez également soin du cache du navigateur.
Mon système:
la source
J'ai passé deux jours à le suivre 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
/var/www
. Ils auraient dû être dans/var/www/html
.Je viens de commencer le travail PHP, donc je ne sais pas si ma solution est liée au changement de version que vous avez subi.
la source
cela a résolu le problème pour moi (j'ai installé php7):
sudo apt-get installer libapache2-mod-php7.0
redémarrage du service sudo apache2
la source
J'ai eu ce problème. Il s'est avéré que nginx et apache étaient 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 apache de démarrer.
la source
Il est également possible que nginx soit en cours d'exécution mais que votre PHP soit configuré pour fonctionner avec apache. Pour vérifier, exécuter
service nginx status
etservice apache2 status
voir lequel est en cours d'exécution. Dans le cas où nginx est en cours d'exécution et qu'apache ne l'est pas, exécutez simplementsudo service nginx stop; sudo service apache2 start
et votre serveur servira maintenant les fichiers php comme prévu.la source
Ok ... Je sais qu'il y a déjà 1.000.000 de réponses à ces questions, - 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 trouvé aucun article à ce sujet. J'ai donc pensé que j'ajouterais la solution à mon problème ici.
La conclusion
Si j'ai commenté ces deux lignes dans mes fichiers .conf dans le
/etc/apache2/[[SERVER-NAME].conf
-file:Je n'ai aucune idée de ce qu'ils font ou comment ils y sont arrivés, - mais c'est dans chacun de mes
.conf
fichiers. Et si je supprime ces lignes et m'assure qu'il y a un lien symbolique dans/etc/apache2/sites-enabled/
-folder, alors il ne télécharge pas l'index.php - et tout fonctionne comme il se doit.L'histoire entière
J'ai VirtualMin installé sur un VPS Ubuntu 16.04. Je suis passé à la version 7.2 de PHP. Peu de temps après, j'ai mis à jour la version Ubuntu et j'ai frappé une erreur 'Kernel Offset: Disabled'. J'ai donc dû supprimer la dernière version d'Ubuntu, - et quand mon système d'exploitation a redémarré: BOOM! J'ai eu l'erreur dont parle son message: pour chaque site de mon VPS, il a simplement téléchargé le fichier 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 recherchant sur Google. J'ai dû activer environ 6 à 8 modules, avant de franchir cette étape de la validation - et cela a pris quelques minutes avant que le cache ne s'épuise, - donc cela était une étape fastidieuse.la source
J'ai eu un problème similaire à l'OP lors de la mise à niveau de php5 d'une ancienne version vers la 5.5.9, qui est la version installée avec Mint 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 télécharger ces modifications sur le serveur réel. Je garde 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'afficheront pas ou afficheront uniquement du HTML sur la machine locale. PHP n'a pas été analysé. La commande phpinfo () fonctionnait, donc je savais que php fonctionnait autrement. Le journal n'a généré aucune erreur. La visualisation de la source de la page m'a montré le code php réel.
J'avais construit une page test.php qui contenait le code suivant:
<?php phpinfo(); ?>
Cela a fonctionné. Puis j'ai découvert quand je suis passé
<?php
à<?
la commande ne fonctionnait plus. Tous mes sites php utilisent à la<?
place 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 recherchant "short_open_tag" et en changeant la valeur de Off à On.la source
Si aucune des solutions ci-dessus ne fonctionne,
essayez de commenter la ligne
et redémarrez Apache en utilisant
Ça devrait marcher!
la source
PHP56
vim /etc/httpd/conf/httpd.conf
la source
J'ai ce genre de problème. Voilà comment je le résous. Après avoir installé Apache, j'ai installé PHP en utilisant cette commande.
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é.
mais il n'a montré aucun résultat. Je vérifie les packages PHP installés.
Différents types de versions PHP installées sur mon ordinateur. Ensuite, je supprime certains paquets PHP de ma liste précédente, en utilisant apt-get purge .
Je réinstalle PHP
Vérifiez que le module PHP est chargé
s'il n'est pas activé avec:
Redémarrez le serveur Apache
Enfin, je vérifie le processus PHP sur Apache
créer un fichier vide
Ajoutez ce contenu à info.php et enregistrez.
Vérifier sur le navigateur:
ça se voit correctement, je pense que ça aidera n'importe qui.
la source
J'ai eu ce problème et si vous n'avez jamais joué avec les paramètres de configuration de votre serveur, votre problème est à 90% dans votre fichier .htaccess
Vous pouvez soit modifier le fichier .htaccess LOCALEMENT, soit le supprimer (LOCALEMENT)
la source
Si vous avez virtualmin, essayez de commenter ces lignes dans votre configuration apache dans / etc / apache2 / sites-available
la source
Lorsque j'ai mis à jour PHP 7.2 vers PHP 7.4, j'ai également eu le même problème. Travaillé en faisant ce qui suit: -
Dans
[domain].conf file
, a commenté ce qui suit:Moteur php_admin_value désactivé
Et ajouté:
Désactivez le mod 7.2 et activez 7.4 en suivant:
a2dismod php7.2
a2enmod php7.4
Dans le
/etc/apache2/mods-enabled/php7.4.conf
fichier, commentez ce qui suit:Application SetHandler / x-httpd-php
moteur php_admin_flag désactivé
la source
Pour les personnes qui ont trouvé ce message 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 le
UserDir
module.Une autre cause possible de ce problème peut être que vous essayez d'exécuter le script dans un "répertoire utilisateur" à partir du
UserDir
module. L'exécution de scripts PHP dans les répertoires des utilisateurs est désactivée par défaut. Vous rencontrerez ce problème si le script se trouve dans lepublic_html
répertoire de votre dossier de départ et que vous essayez d'y accéder depuishttp://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 litla source
Si votre .htaccess a quelque chose comme ça
la source