Apache n'exécute pas les fichiers PHP, mais me fait les télécharger

15

J'ai donc configuré mon serveur à l'aide de ce tutoriel, et lorsque le fichier test.php fonctionne sans problème lorsque j'entre l'adresse en utilisant l'IP de mon serveur comme

http://1.2.3.4/test.php

Cependant, si j'utilise des hôtes virtuels, le navigateur propose simplement de télécharger le fichier plutôt que de l'exécuter. Donc ça:

http://blog.mydomain.com/test.php

propose de télécharger le fichier plutôt que d'exécuter le script.

Le code que j'utilise dans /etc/apache2/apache2.conf pour les hôtes virtuels est le suivant:

Include /etc/phpmyadmin/apache.conf
Include /etc/apache2/mods-available/php5.conf

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder1
    ServerName www.mydomain.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder2
    ServerName blog.mydomain.com
</VirtualHost>

NameVirtualHost *:80

Bien que je doive dire que lorsque je redémarre le serveur apache2, je reçois un message d'avertissement:

[....] Restarting web server: apache2
[Sun Jan 19 13:33:40 2014] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting [Sun Jan 19 13:33:41 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
Le physicien quantique
la source
Savez-vous qu'il s'agit d'un serveur LAMP?
Braiam
@Braiam pour être honnête, je suis perdu entre LAMP et Apache ... Je ne sais pas la différence ... cependant, vous avez une réponse à ma question?
The Quantum Physicist
où puis-je trouver ce répertoire? ça ne marche pas pour moi. s'il vous plaît aider? comment recharger le terminal vhost vie?
God world
@Godworld Quel annuaire? Les fichiers de configuration Apache sont dans /etc/apache2/.
The Quantum Physicist
1
Copie possible du script PHP non exécutée sur le serveur Apache
Florian Diesch

Réponses:

19

Je l'ai fait fonctionner avec la ligne:

sudo apt-get install libapache2-mod-php7.0

sudo service apache2 restart
Alastair Mason
la source
Merci d'avoir nommé cette bibliothèque. Je savais que je devais installer une bibliothèque pour résoudre ce problème, mais je ne connaissais pas le nom.
Rahul Prasad
Le libapache2-mod-php7.0package n'existe pas dans le référentiel Ubuntu principal. Pas avant la sortie du 16.04. Vous devez utiliser à la libapache2-mod-php5place.
Dan
4

Parfois, des choses encore pires peuvent arriver .... J'ai juste oublié d'installer php

Tebe
la source
5
Je pense à peine que cela peut être appelé une vraie réponse, mais je suppose que c'est le cas.
Seth
3
Lorsque vous avez un nombre raisonnable de machines et qu'il est raisonnablement tard dans la soirée, c'est certainement une réponse valable.
Avio
1
Une réponse valable en effet. J'ai eu un problème pour jongler avec php5, php5-cli, php5-fpm et php-whatnot. Apache manquait juste le bon paquet.
célèbregarkin
0

J'ai trouvé la solution ici . Il s'avère que j'ai dû activer certains modules ...


Tiré de cette réponse Stack Overflow par user1075581 :

Cela m'a finalement mis sur la bonne voie:

http://www.linuxquestions.org/questions/linux-server-73/php-not-working-on-one-vhost-but-works-on-all-others-851093/

Voici la solution:

Dans la <Directory>section, j'ai inclus ces lignes:

<IfModule sapi_apache2.c>
    php_admin_flag engine on
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>

Ou, un copier / coller expurgé de la solution sur mon serveur:

<Directory "/var/www/vhosts/A2/httpdocs">
    <IfModule sapi_apache2.c>
        php_admin_flag engine on
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine on
    </IfModule>

    (Other configuration parameters)

</Directory>
Le physicien quantique
la source
0

Je recherche cela depuis longtemps et je viens de trouver une solution qui fonctionne dans mon cas. J'avais mis mon fichier ( processorder.php5) dans le répertoire /var/wwwdans une installation ubuntu standard. Je pensais que c'était l'endroit où Php avait l'air. Mais pour le html (ou les fichiers php qui sont probablement considérés comme la même chose), il a cherché /var/www/html, c'est- à -dire le htmlsous - répertoire de /var/www.

Lorsque j'ai déplacé mon fichier dans un répertoire, cela a fonctionné. Je suis méfiant parce que je ne pense pas avoir vu cela documenté nulle part

Craig Smilovitz
la source
0

les problèmes d'autorisation peuvent également conduire à obtenir ce comportement étrange

chmod -R u=rwX,go=rX my_publishing_directory

va se débarrasser des problèmes d'autorisation (644 sur les fichiers et 755 sur les répertoires)

baobab33
la source