Apache führt keine PHP-Dateien aus, aber ich lade sie herunter

15

Also richte ich meinen Server mit diesem Tutorial ein und wenn die test.php-Datei ohne Probleme funktioniert, gebe ich die Adresse mit der IP meines Servers als ein

http://1.2.3.4/test.php

Wenn ich jedoch virtualhosts verwende, bietet der Browser lediglich an, die Datei herunterzuladen, anstatt sie auszuführen. Also das:

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

bietet an, die Datei herunterzuladen, anstatt das Skript auszuführen.

Der Code, den ich in /etc/apache2/apache2.conf für virtuelle Hosts verwende, ist der folgende:

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

Obwohl ich sagen muss, dass ich beim Neustart des Apache2-Servers eine Warnmeldung erhalte:

[....] 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
Der Quantenphysiker
quelle
Ist Ihnen bewusst, dass dies ein LAMP-Server ist?
Braiam
@Braiam um ehrlich zu sein, ich habe mich zwischen LAMP und Apache verlaufen ... Ich kenne den Unterschied nicht ... aber hast du eine Antwort auf meine Frage?
Der Quantenphysiker
Wo finde ich dieses Verzeichnis? das klappt bei mir nicht bitte helfen Wie lade ich vhost vie Terminal neu?
God World
@Godworld Welches Verzeichnis? Apache-Konfigurationsdateien sind in /etc/apache2/.
Der Quantenphysiker
1
Möglicherweise wird ein Duplikat des PHP-Skripts auf dem Apache-Server nicht ausgeführt
Florian Diesch,

Antworten:

19

Ich habe es mit der Linie zu arbeiten:

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

sudo service apache2 restart
Alastair Mason
quelle
Vielen Dank, dass Sie diese Bibliothek benannt haben. Ich wusste, dass ich eine Bibliothek installieren musste, um dies zu beheben, wusste aber nicht, wie der Name lautete.
Rahul Prasad
Das libapache2-mod-php7.0Paket existiert nicht im Haupt-Ubuntu-Repository. Erst 16.04 wird freigegeben. Sie sollten libapache2-mod-php5stattdessen verwenden.
Dan
4

Manchmal können noch schlimmere Dinge passieren ... Ich habe nur vergessen, PHP zu installieren

Tebe
quelle
5
Ich denke kaum, dass dies eine echte Antwort sein kann, aber ich denke, dass es irgendwie ist.
Seth
3
Wenn Sie eine angemessene Anzahl von Maschinen haben und es einigermaßen spät am Abend ist, ist dies definitiv eine gültige Antwort.
Avio
1
Eine gültige Antwort in der Tat. Ich hatte ein Problem beim Jonglieren von php5, php5-cli, php5-fpm und php-whatnot. Apache hat einfach das richtige Paket verpasst .
famousgarkin
0

Ich habe hier die Lösung gefunden . Es stellte sich heraus, dass ich einige Module aktivieren musste ...


Entnommen von dieser Stack Overflow-Antwort von user1075581 :

Dies brachte mich endlich auf den richtigen Weg:

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

Hier ist die Lösung:

In den <Directory>Abschnitt habe ich folgende Zeilen aufgenommen:

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

Oder ein redigiertes Kopieren / Einfügen der Lösung auf meinem Server:

<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>
Der Quantenphysiker
quelle
0

Ich habe lange danach gesucht und gerade eine Lösung gefunden, die in meinem Fall funktioniert. Ich hatte meine Datei ( processorder.php5) /var/wwwin einer Ubuntu-Standardinstallation in das Verzeichnis gestellt. Ich dachte, das wäre der Ort, an dem PHP gesucht hat. Aber für HTML-Dateien (oder PHP-Dateien, die wahrscheinlich als dasselbe angesehen werden) sah es in /var/www/html, dh im htmlUnterverzeichnis von /var/www.

Als ich meine Datei in ein Verzeichnis verschoben habe, hat es funktioniert. Ich bin misstrauisch, weil ich glaube, ich habe das nirgendwo dokumentiert gesehen

Craig Smilovitz
quelle
0

Berechtigungsprobleme können ebenfalls zu diesem seltsamen Verhalten führen

chmod -R u=rwX,go=rX my_publishing_directory

Berechtigungsprobleme werden beseitigt (644 für Dateien und 755 für Verzeichnisse)

baobab33
quelle