Question LAMP: PHP non exécuté à la place


J'ai acheté un serveur en ligne et installé LAMP dans (avec 1 clic, je n'ai rien configuré).

J'ai maintenant besoin de créer une page dynamique en utilisant php, mais si créer un fichier test.php avec le code suivant:

<?php
echo "Hello!";
?>

Quand je me connecte à http://serverIP/test.php au lieu de me montrer une page vide qui dit Hello! il continue à télécharger test.php sur mon ordinateur en fichier!

Notez s'il vous plaît:

  1. test.php est dans /var/www/html à côté de index.html et beaucoup d'autres fichiers .html qui fonctionnent correctement.

  2. Si je tape php -v dans la ligne de commande, il est dit que

    php 7.0.22-0ubuntu0.16.04.1 est installé.

  3. Quand je tape a2enmod php7.0 ça dit

    Le module php7.0 est déjà activé

  4. Avec LAMP je me suis installé Ubuntu 16.04 and Apache 2.4.18 (Ubuntu).

  5. ne peut pas voir un dossier nommé "modules" dans /etc/apache2

  6. Lorsque je modifie un fichier, je redémarre également apache (service apache2 restart)

C'est comme ça que mon /etc/apache2/apache2.conf ressemble à (sans tous les commentaires):

Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
Include ports.conf
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    <IfModule sapi_apache2.c>
        php_admin_flag engine on
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine on
    </IfModule>
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf


#the following lines are what I added
LoadModule php7_module modules/libphp7.so ### in "etc/apache2" there isn't a folder named "modules" ###
AddType application/x-httpd-php .php
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

0
2017-11-08 18:26


origine


avez-vous installé libapache2-mod-php7.0 sudo apt install libapache2-mod-php7.0 - Panther
Oui, je l'ai trouvé installé par défaut (comme php7.0) - MauroFari
Oui, php7.0 est activé (comme je l'ai écrit). Supprimer ces lignes ne résout pas le problème, j'ai juste essayé ... - MauroFari
pouvez-vous poster la sortie de sudo lsof -i :80 et sudo netstat -tulpn | grep LISTEN - Panther
Et bien voilà, vous ne lancez pas Apache =) Vous pouvez soit arrêter nginx et démarrer apache, soit configurer nginx, votre choix. sudo service stop nginx && sudo start apache2 - Panther


Réponses:


Grâce à @Panthère il s'est avéré que j'utilisais nginx, pas apache ... alors le problème a été résolu. Merci encore @Panthère!

Vous voulez probablement supprimer ou désactiver nginx

sudo systemctl disable nginx

ou

sudo apt-get remove nginx

1
2017-11-08 19:58





Vérifier /etc/php/7.0/ pour vous assurer d'avoir php7.0-cgi installée. Vous devriez avoir un apache2 dossier là-bas, si tout ce que vous voyez est un cli dossier que vous devrez sudo apt-get install php7.0-cgi, puis redémarrez Apache.


0
2017-11-08 18:41



Dans mon dossier apache2, j'ai 3 dossiers: cli, apache2 et mods-available. J'ai fait apt-get install php7.0-cgi (et il n'a pas été installé!), redémarré Apache, mais je vois toujours ces 3 dossiers, et il télécharge toujours test.php sur mon ordinateur - MauroFari
EDIT: un dossier nommé "cgi" est apparu, mais il continue à télécharger test.php au lieu de l'afficher (j'ai aussi fait a2enmod cgi et redémarré Apache ...) - MauroFari
@ MauroFari avez-vous nuke le cache de votre navigateur? Les navigateurs sont connus pour «mettre en cache» la façon de gérer les choses. - Thomas Ward♦
Oui, j'ai effacé le cache plusieurs fois. J'essaie également depuis mon smartphone en utilisant FireFox Focus, qui n'enregistre aucune donnée (cache inclus) - MauroFari
Pouvez-vous couper et coller les listes que vous obtenez lorsque vous tapez a2enmod et a2dismod. Rien après les commandes ne vous donnera une liste des modules activés et désactivés. Ctrl+C pour sortir de l'invite d'entrée du module. Avez-vous également édité .htaccess fichiers ou avez-vous entré des variables de réécriture spécifiques dans le apache2.conf fichier? NVM: consultez votre mise à jour NGINX maintenant. - m_krsic