J'ai récemment essayé d'installer php et Apache sur mon ordinateur. Après plusieurs heures, ils sont installés. J'ai modifié les fichiers httpd.conf et php.ini comme tout le monde le dit. J'ai ensuite créé un script php simple:
<?php phpinfo(); ?>
Mais lorsque j'essaie de l'exécuter avec http://127.0.0.1/phpinfo.php
, il affiche simplement le code source au lieu de l'exécuter. J'utilise Apache2, PHP 5 et Windows Vista. J'ai cherché partout sur Internet sans succès et me cogne presque la tête contre le mur. Quelqu'un peut-il me sauver d'une commotion cérébrale?
Lignes éditées:
PHP.INI:
short_open_tag = On
HTTPD.CONF
LoadModule php5_module "C:/php/php5Apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PHPIniDir "C:/php"
Vous devez activer php! Vérifiez le dossier mods-enabled
dans le répertoire Apache (par défaut:/etc/Apache2 /) pour voir si vous trouvez un fichier nommé php
. Je ne me souviens pas de l'extension mais je pense que c'est .so
.
Vérifiez également var/log/Apache2/error.log
pour voir si vous avez des erreurs.
Wow, beaucoup de solutions ici! Voici ce que j'ai fait sur Ubuntu 16.04 :
Sudo apt-get install php libapache2-mod-php
Sudo a2enmod mpm_prefork && Sudo a2enmod php7.0
Sudo service Apache2 restart
Pour PHP 7 (peut s'appliquer également aux versions précédentes), mais je devais le faire:
Ajoutez ceci au bas de /etc/Apache2/Apache2.conf
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Exécutez ceci depuis le terminal:
Sudo a2dismod mpm_event && Sudo a2enmod mpm_prefork && Sudo a2enmod php7
Ensuite, n'oubliez pas de redémarrer Apache pour qu'il sache que vous avez modifié des éléments:
Sudo service Apache2 restart
Ceci est un résumé de: https://www.atlantic.net/community/howto/try-php7-lamp-ubuntu-14-04/
ouvrir le fichier
/etc/Apache2/httpd.conf
et changer
#LoadModule php5_module libexec/Apache2/libphp5.so
dans
LoadModule php5_module libexec/Apache2/libphp5.so
Alors désactivez le chargement du module PHP dans httpd.conf
J'ai trouvé cela pour résoudre mon problème lié. Je l'ai ajouté à la section <Directory>
correspondante:
<IfModule mod_php5.c>
php_admin_flag engine on
</IfModule>
Une réponse différente qui a fonctionné pour moi. Est-ce que, installer [Sudo] apt-get install libapache2-mod-php5.X
Très bien, si vous avez essayé ce que l'on vous a dit plus haut ou plus tôt (qui sont des raisons possibles) et que le code reste affiché au lieu de l'exécuter, il y a une chose que vous faites mal et qui n'a pas encore été résolue ..__ L'URL que vous avez utilisé pour accéder à votre code php; Certaines personnes essaient d'exécuter leur code php en faisant simplement glisser le fichier .php dans le navigateur Web. Ceci est une mauvaise pratique et pourrait conduire à ce genre de problème . si vous avez enregistré un fichier en tant que "test.php" dans le dossier C: // wamp/www, vous devez accéder à ce fichier de cette façon: localhost: //test.php.Ce genre d'erreur se produit lorsque vous y accédez de cette façon: localhost: //wamp/www/test.php
J'espère que j'ai aidé quelqu'un là-bas. o / ~ Daniel
Afficher ce qui a fonctionné pour moi au cas où aider aiderait quelqu'un sur la route, bien que ce soit un cas inhabituel.
J'avais défini un gestionnaire pour obliger mon hébergeur à utiliser une version de PHP supérieure à celle par défaut. Il y avait 5.1, mais je voulais 5.6 alors j'ai eu ceci:
<FilesMatch \.php$>
SetHandler php56-cgi
</FilesMatch>
dans mon fichier .htaccess.
Lorsque j'essayais de faire fonctionner mon site localement, le fait que cela se trouve là faisait que le code PHP était envoyé au navigateur. Le supprimer a résolu le problème.
Vous pouvez supprimer votre fichier .htaceess et laisser le système en créer un nouveau (vierge ou de base). Il se peut que certaines lignes que vous avez ajoutées soient des déclarations incorrectes ou que quelque chose d’autre à l’origine du problème. Vous pouvez ensuite ajouter ligne par ligne à partir de votre ancien fichier .htaccess pour voir la cause du problème.
Cela a fonctionné pour moi. Les lignes indiquant à la machine de ne pas afficher les extensions php posaient problème dans mon cas ( RewriteCond et RewriteRule ). Mon ancien fichier .htaccess fonctionnait parfaitement sur un serveur partagé, mais ce problème est apparu lorsque je suis passé à VPS.
Ce qui a fonctionné pour moi:
Dans httpd.conf actif, trouvez
<IfModule mime_module>
...
</IfModule>
Il manquait le suivant
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
Après avoir redémarré Apache, les fichiers .php sont correctement analysés.
si le module userdir est activé et que votre site se trouve dans un utilisateur (~/public_html), vous devez vérifier /etc/Apache2/mods-enabled/php5.conf. La partie suivante le fait fonctionner (sous Ubuntu 14.10 utopic):
# Running PHP scripts in user directories is disabled by default
#
# 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.
# <IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
# </IfModule>
Merci aux autres sur ce fil pour leurs suggestions. En suivant les étapes mentionnées, j’ai constaté que le serveur Apache n’était pas en mesure de signaler une erreur de syntaxe dans un fichier load
dans /etc/Apache2/mods-enabled
. Il s'avère que php7.0 et php7.1 ont été activés.
a2dismod php7.0
systemctl restart Apache2
et php est rendu correctement à nouveau.
Si vous êtes un utilisateur d'ubuntu, après l'installation d'Apache, vous devez exécuter la commande suivante dans la nouvelle installation.
Sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
Dans mon cas, ça fonctionne bien.
J'ai eu le même problème. Lorsque je lance un fichier php, le navigateur Web m'a montré le code php au lieu de l'exécuter. J'avais essayé plusieurs fois: désinstaller/réinstaller wampserver64, contourner les paramètres/modules PHP/Apache, etc. alt + shift + R "pour le chrome. Il essayait d'exécuter mon fichier php tel que: "fichier /// C:/wamp64/www/bla/bla .." dans la barre d'adresse de mon chrome. C'était mon problème. J'ai fait les modifications conformément à la page Configuration de Notepad ++ pour exécuter php sur localhost? . Mon problème était résolu. Mais après 2 jours ..
Solution Debian 9:
touch /etc/Apache2/conf-available/php.conf
Ajouter au fichier des lignes suivantes:
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
Puis lancez:
a2enconf php && service Apache2 restart
J'ai eu le même problème, causé par la configuration par défaut du module suphp
sous Debian/Ubuntu. Il contenait suPHP_Engine off
pour tout le répertoire/usr/share, ce qui entraînait l'affichage des sources PHP dans le navigateur. Désactiver avec a2dismod suphp
était la solution provisoire.
Parfois, si vous avez des conflits de version php, cela se produit .__ Pour résoudre ce problème, suivez les étapes ci-dessous.
Étape 1: Yum liste installée | grep 'php'
si vous avez plusieurs versions de php comme php 5.6 et php 7.0, ce conflit se produira
Étape 2: supprimez ** votre version php **
Étape 3: Redémarrez ensuite apapche /etc/init.d/httpd restart
ou service Apache2 restart
Cela m’arrivait aussi lors de l’exécution de $ _POST dans MAMP. Tous mes fichiers .ini et httpd ont tous été configurés correctement. Si vous manipulez des formulaires et que vous avez un document HTML et que vous publiez les informations sur un gestionnaire de formulaires php exécutant $ POST, assurez-vous que vous exécutez le fichier html à partir de localhost via votre serveur, et pas uniquement localement.
C’est un raccourci que j’ai fait pour exécuter des documents html, en cliquant simplement sur le fichier html de mon répertoire et en le lançant dans mon navigateur Web. En réalité, pour vérifier si php est traité dans votre formulaire, vous devez exécuter votre html via vos serveurs. Un protocole très simple que j'ai négligé.
Exemple:
Wrong: file:///Applications/MAMP/htdocs/form/form.html
Droite: http://localhost:your port number/form/form.html
Maintenant, le php devrait être traité une fois que vous avez cliqué sur votre bouton d'envoi
Exécutez Xampp (Apache) en tant qu'administrateur. Dans Google Chrome tapez:
localhost/<insert folder name here>/<insert file name>
c'est-à-dire si le dossier que vous avez créé est "LearnPhp", le fichier est "chapitre1.php", puis tapez
localhost/LearnPhp/chapter1.php
J'ai créé ce dossier dans le dossier xampp du dossier htdocs créé lors du téléchargement de xampp.