#1 Le 17/04/2016, à 18:16
- Eloen
Php "téléchargé" au lieu de s'exécuter [Résolu]
Bonjour ^^
depuis une semaine, j'ai tenté de faire fonctionner un serveur apache couplé avec phpmyadmin. Le problème est que lorsque je tente de lancer un .php mon navigateur me propose de le télécharger au lieu de l'afficher. J'ai tenté toutes les réinstallations possibles en consultant une tonne de sites web en français comme en anglais. Ce que j'ai tenté et qui ne marche apparemment pas :
- Commenter dans
/etc/apache2/mods-enabled/php5.conf
le code suivant :
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
#</IfModule>
- Télécharger ceci :
sudo apt-get install libapache2-mod-php5
Puis faire :
sudo a2enmod php5
- Changer le chemin du var/www avec un home/monUser/www-dev
Et évidemment avec un petit
/etc/init.d/apache2 restart
entre chaque nouvelle modification + vider le cache du navigateur
Et ce n'est pas un problème de php enfin je pense. Voici mon code :
<?php
echo 'hellow';
?>
enregistré en bonjour.php
J'ai essayé encore je ne sais pas combien de solutions qui avaient l'air d'avoir marché pour certains, réinstallé je ne sais combien de fois php ou encore apache, redémarré ma machine ... mais impossible de faire marcher ces .php ... je ne comprend vraiment pas où est mon erreur. Pourriez-vous m'aider? Je commence à vraiment saturer
Dernière modification par Eloen (Le 17/04/2016, à 22:18)
Hors ligne
#2 Le 17/04/2016, à 18:25
- bobe
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Salut,
Et si tu nous donnais le contenu de mods-enabled/php5.conf.
Regarde aussi dans conf-enabled/ s'il y a un fichier de configuration en rapport avec php.
Hors ligne
#3 Le 17/04/2016, à 18:30
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Pourquoi "- Changer le chemin du var/www avec un home/monUser/www-dev" ?
As-tu fait un vhost ou est-ce encore un bricolage à coup de ln ?
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#4 Le 17/04/2016, à 18:35
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Bonjour ^^
Alors le contenu de mods-enabled/php5.conf :
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
Require all denied
</FilesMatch>
# 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>
(Les 5 dernières lignes sont commentées, mais à la base elles ne l'étaient pas).
Et qu'est-ce que tu entends par en rapport avec php?
Dans conf-enabled/ il y a les fichiers : charset.conf, localized-error-pages.conf, other-vhosts-access-log.conf, security.conf, serve-cgi-bin.conf
(Je débute encore avec Ubuntu si jamais)
Pour répondre à jplemoine : j'ai lu ce terme vhost quand j'ai fait les modifications, mais je ne sais pas si c'est ça. J'ai été dans les fichiers 000-default.conf et default-ssl.conf et j'ai changé les lignes avec DocumentRoot
Hors ligne
#5 Le 17/04/2016, à 18:42
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
On va dire qu'il y a mieux à faire mais que ça élimine une piste que j'avais en tête.
Pas d'idée plus que ça... As-tu regardé les fichiers log (/var/log/apache2) ? (il y a peut-être un indice)
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#6 Le 17/04/2016, à 18:45
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Pas du tout regardé ! Qu'est-ce qu'il faudrait y trouver? (J'ai été dans le dossier, il y a access.log, access.log.1, access.log.2.gz, access.log.3.gz, access.log.4.gz, error.log, error.log.1, error.log.2.gz, error.log.3.gz, error.log.4.gz, error.log.5.gz, other_vhosts_access.log )
Hors ligne
#7 Le 17/04/2016, à 18:59
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
regarde ceux sans .1, .2,...
- tu fais un
ls -ldrt *
pour regarder la date et heure du fichier le plus récent
- tu accèdes à ta page (bonjour.php)
- tu fais un
ls -ldrt *
pour regarder celui ou ceux qui ont été modifié
Dernière modification par jplemoine (Le 17/04/2016, à 19:52)
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#8 Le 17/04/2016, à 19:06
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Je ne dois pas avoir bien compris. J'ai tapé la commande un ls -ldrt * et ça m'a mis "un : command not found"
Qu'est-ce que tu entendais par regarder les fichiers? Avec cette commande?
Hors ligne
#9 Le 17/04/2016, à 19:52
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
commande corrigée le un ne fait pas partie de la commande. désolé.
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#10 Le 17/04/2016, à 20:02
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Je ne sais pas si ça peut aider, mais quand je fais reload j'ai cette erreur :
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
Sinon avec la commande que tu m'as proposée ça met :
lrwxrwxrwx 1 root root 37 avril 17 16:27 php4.load -> /etc/apache2/mods-available/php4.load
root@nomUser:~# ls -ldrt *
lrwxrwxrwx 1 root root 37 avril 17 16:27 php4.load -> /etc/apache2/mods-available/php4.load
Merci de ta patience en tout cas ^^
Hors ligne
#11 Le 17/04/2016, à 20:43
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Il faut faire un
cd /var/log/apache2
avant de lancer les ls
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#12 Le 17/04/2016, à 20:58
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Ah oui évidemment ! Zut...
Bon après avoir fait les bons trucs cette fois ça donne donc :
-rw-r----- 1 root adm 0 avril 17 20:46 other_vhosts_access.log
-rw-r----- 1 root adm 997 avril 17 20:47 error.log
-rw-r----- 1 root adm 682 avril 17 20:47 access.log
root@nomUser:/var/log/apache2# ls -ldrt *
-rw-r----- 1 root adm 0 avril 17 20:46 other_vhosts_access.log
-rw-r----- 1 root adm 997 avril 17 20:47 error.log
-rw-r----- 1 root adm 682 avril 17 20:47 access.log
Je n'ai pas l'impression d'un changement, après c'est peut-être bon signe?
Hors ligne
#13 Le 17/04/2016, à 21:06
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Ben non... Il me vient un doute : c'est Apache qui est censé répondre sur le port 80 ou pas ?
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#14 Le 17/04/2016, à 21:08
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Que donne :
sudo netstat -tpl | grep 80
sudo netstat -tpl | grep http
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#15 Le 17/04/2016, à 21:19
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
J'avoue que je ne sais pas du tout sur quel port Apache doit répondre
(J'ai tapé sur google et ça a l'air d'être le port 80, après je ne suis pas une source fiable ^^)
Pour les commandes ça me donne :
root@nomUser:/opt/lampp/htdocs# sudo netstat -tpl | grep 80
tcp 0 0 localhost:mysql *:* LISTEN 15809/mysqld
root@nomUser:/opt/lampp/htdocs# sudo netstat -tpl | grep http
tcp6 0 0 [::]:http [::]:* LISTEN 17766/apache2
Hors ligne
#16 Le 17/04/2016, à 21:41
- J5012
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
mon php5.load :
cat /etc/apache2/mods-available/php5.load
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
mon php5.conf :
cat /etc/apache2/mods-available/php5.conf
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# 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_value engine Off
</Directory>
</IfModule>
</IfModule>
pour la securité des fichiers bruts , ecrits en php mais sans extension, il n'y a pas d'execution : on obtient une page blanche ...
Hors ligne
#17 Le 17/04/2016, à 21:51
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
J'ai le même php5.load apparemment. Par contre, pour le php5.conf j'ai :
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
</FilesMatch>
php_value display_errors on
<FilesMatch >
SetHandler
# 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>
Oui, mais du coup, ça n'écrit pas de php non? Le but c'est que le php soit reconnu ^^ (Ou alors je n'ai pas compris ce que tu voulais dire).
Hors ligne
#18 Le 17/04/2016, à 21:55
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
C'est bien Apache2 qui répond : donc, tu as dû te tromper dans ton test...
on va tester un truc :
que donne
ps aux | grep apache
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#19 Le 17/04/2016, à 21:58
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Dans quel test? (Mais oui, il est très fort possible que l'erreur soit entre la chaise et le clavier ^^)
Pour cette commande j'obtiens :
root 17766 0.0 0.5 241284 21328 ? Ss 20:47 0:00 /usr/sbin/apache2 -k start
www-data 17769 0.0 0.2 241544 8652 ? S 20:47 0:00 /usr/sbin/apache2 -k start
www-data 17770 0.0 0.1 241324 7472 ? S 20:47 0:00 /usr/sbin/apache2 -k start
www-data 17771 0.0 0.2 241544 8652 ? S 20:47 0:00 /usr/sbin/apache2 -k start
www-data 17772 0.0 0.1 241324 7472 ? S 20:47 0:00 /usr/sbin/apache2 -k start
www-data 17773 0.0 0.1 241324 7428 ? S 20:47 0:00 /usr/sbin/apache2 -k start
www-data 17814 0.0 0.2 241544 8984 ? S 20:47 0:00 /usr/sbin/apache2 -k start
root 25868 0.0 0.0 13700 2220 pts/17 S+ 22:56 0:00 grep --color=auto apache
Hors ligne
#20 Le 17/04/2016, à 22:02
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Je viens de tester : si tu accèdes à un page (exemple : bonjour.php), il y a toujours un log...
Rassure-moi sur un point : tu fais comment pour accéder à ta page ?
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#21 Le 17/04/2016, à 22:08
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Vu que j'ai créé un autre chemin, (et copié/collé dans les deux dossiers), je l'ouvre avec un des deux liens (en tapant l'url).
file:///nomUser/www-dev/bonjour.php
file:///var/www/html/bonjour.php
Et ça me propose de télécharger le fichier .php
Il y a un autre moyen de faire?
(Merci encore de ta patience, je ne comprend vraiment pas comment faire marcher tout ça, je n'avais pas l'impression de faire de fautes )
Dernière modification par Eloen (Le 17/04/2016, à 22:08)
Hors ligne
#22 Le 17/04/2016, à 22:12
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Purée, que je suis c... !!!! La solution était tellement évidente.....
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#23 Le 17/04/2016, à 22:14
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Pour y avoir passé des jours dessus ça m'intrigue !
Hors ligne
#24 Le 17/04/2016, à 22:14
- jplemoine
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Le Php doit s’exécuter sur le serveur avant d'envoyer le résultat dans le navigateur.
Donc, il ne faut pas lire le fichier (ce que tu as fait) mais le faire "exécuter" par le serveur.
il faut donc y accéder par http://localhost/bonjour.php (à taper dans la barre d'adresse de ton navigateur préféré..).
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#25 Le 17/04/2016, à 22:17
- Eloen
Re : Php "téléchargé" au lieu de s'exécuter [Résolu]
Oh non ... c'était juste ça ... je me sens vraiment très bête là ...
C'était évident ... et ça marche
Pfou le soulagement ! Merci beaucoup de ta patience ! Mille fois merci !
Hors ligne