Was führt dazu, dass PHP-Seiten ständig heruntergeladen werden, anstatt normal ausgeführt zu werden?

Was führt dazu, dass PHP-Seiten ständig heruntergeladen werden, anstatt normal ausgeführt zu werden?

Ich betreibe einen Ubuntu-Server auf einer VM, um verschiedene Webforum-Lösungen zu testen. Ich habe ein ~/public_html/ eingerichtet, das mit dem Apache2-Webserver zugänglich ist, und das funktioniert gut.

Wenn ich jedoch in einem Browser auf eine PHP-Datei zugreife (mit der IP-Adresse/~Benutzername/phpfile.php meiner VM), wird sie nicht wie vorgesehen angezeigt. Stattdessen wird angeboten, sie in einer Datei zu speichern bzw. gefragt, mit welchem ​​Programm sie geöffnet werden soll. Interessanterweise erkennt dieses Dialogfeld jedoch, dass es sich um eine PHP-Datei handelt.


Ich habe die folgende PHP-Version auf dem System installiert:

PHP 5.3.2-1ubuntu4.5 with Suhosin-Patch (cli) (built: Sep 17 2010 13:49:46)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Und folgender Server:

Server version: Apache/2.2.14 (Ubuntu)
Server built:   Nov 18 2010 21:19:09


Wenn irgendjemand die Ursache hierfür kennt/mögliche Lösungen kennt, würde mich das sehr freuen :)

BEARBEITEN: Es stellte sich heraus, dass dieses Verhalten nur bei Dateien im Verzeichnis ~/public_html/ auftrat. Alle PHP-Dateien in /var/www/ funktionieren einwandfrei.

Die Preise gehen an denjenigen, der erklären kann, warum? :D (Und mit Preisen meine ich nur ein „Gut gemacht“, keine wirklichen Preise, fürchte ich.)

Antwort1

Möglicherweise haben Sie derzeit nur die CLI-Version von PHP installiert. Versuchen Sie

sudo apt-get install php5

und starten Sie Apache neu

sudo apache2ctl restart.

Sie können auch überprüfen, ob das PHP-Modul in Apache geladen ist, indem Sie Folgendes tun:

sudo apache2ctl -M

Wenn das Modul geladen ist, sollte es etwa Folgendes anzeigen:

Loaded Modules:
 ...
 php5_module (shared)
 ...
Syntax OK

Antwort2

Fügen Sie dies zu Ihrer Apache-Konfiguration hinzu

AddType application/x-httpd-php .php 

Antwort3

Sie müssen Apache so konfigurieren, dass es den PHP-Interpreter startet, wenn eine PHP-Datei angefordert wird, anstatt nur den Inhalt der Datei zurückzugeben.

Dies muss in httpd.conf für das betreffende Verzeichnis erfolgen. Es würde ungefähr so ​​aussehen:

# Use for PHP 5.x:
LoadModule php5_module        modules/libphp5.so
AddHandler php5-script php 

# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php

AddType text/html       php

Antwort4

Suchen Sie .htaccessnach der AddType-Zeile. Ich hatte einen benutzerdefinierten AddType, der einen falschen Inhaltstyp verursachte. Firefox hat mir beim Debuggen des Problems geholfen, aber Sie können auch verwenden wget.

Feuerfuchs Wget

verwandte Informationen