Debian/Apache2: PHP5 will nicht funktionieren?

Hc-Yami

Admiral
Registriert
Juni 2010
Beiträge
7.286
Guten Abend,
leider bekomme ich es nicht hin, dass Apache2 meine PHP Dateien ausführt. Ich bin bisher wie folgt vorgegangen:
Debian mit Systemwerkzeugen, GUI und Webserver installiert.
Updates installiert
Den Port von Apache2 geändert.
PHP5 mit folgendem Befehl installiert: apt-get install php5 libapache2-mod-php5
Danach Apache2 neugestartet.
Meine Dateien in den /var/www Ordner gepackt. (PHP Dateien sind auch direkt in diesem Ordner)
Danach Apache2 neugestartet.

Leider möchte er einfach nicht PHP5 ausführen. Die phpinfo.php Datei funktioniert tadellos und ich sehe die PHP Seite.

Was mache ich falsch? :/

Danke. :)
 
Wenn phpinfo.php ausgeführt wird dann funktioniert dein PHP. Was ist die exakte Fehlermeldung?
 
unter:
/var/log/apache2/error.log
ist deine log Datei vom Server

Bei Problemen steht da eigentlich alles drin was man braucht, sogar mit Uhrzeit.
Ich denke mal, der führt deine Dateien schon aus, aber in deiner PHP Datei ist irgendwo ein Fehler.
 
Wenn phpinfo funktioniert dann läuft PHP.

Kann es sein das du in deinem Script einen Fehler hast und das errorreporting nicht angeschaltet hast?
 
Wenn ich die Dateien bei einem Web Hosting Anbieter von einem Kollegen lagere, funktionieren die Dateien. Ich denke dementsprechend das es an meiner Maschine liegt. Ich werde mir die Logdatei mal anschauen, danke. :)

#Edit.##

[Thu Aug 29 14:15:59 2014] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u14 configured -- resuming normal operations

Irgendwie scheint er mir ja nichts anzuzeigen. Nur das er wohl sogar PHP5 erkannt hat.

Dementsprechend kann es ja nur an meiner Datei liegen.
In der HTML Datei steht folgendes:

<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>

<!-- Das ist für Google Analytics -->
Habe ich entfernt
<!-- Hier endet Google Analytics -->

<!-- Das ist für den Kopiervebrot -->
Habe ich entfernt
<!-- Hier endet Kopierverbot -->



<div class=content>
<div style="position:fixed;top:20px;">
<div class=ueberschrift>Gästebuch</div>



<?php
$gname = $_POST["gname"];
$gname = htmlentities($gname);
$gnachricht = $_POST["gnachricht"];
$gnachricht = htmlentities($gnachricht);
$gnachricht = str_replace("\n", "<br>", $gnachricht);
$gmail = $_POST["gmail"];
$ghomepage = $_POST["ghomepage"];

if ($gmail != "") {$gmail = "($gmail)";}
if ($ghomepage != "") {$ghomepage = "($ghomepage)<br>";}


if ($gname!="" and $gnachricht!="") {
$datum= date("d.m.Y H:i:s");
$geintrag="$datum|$gname|$gmail|$ghomepage|$gnachricht";
$datei = fopen("gaestebuch.txt", "a");
fwrite($datei, "\n".$geintrag);
fclose($datei);
}
?>



<form action="#" Method="post">

<table><tr><td valign=top>
<input name="gname" size="30" class=input required placeholder="Ihr Name"><br><br>
<input name="gmail" size="30" class=input placeholder="Ihre E-Mail-Adresse"><br><br>
<input name="ghomepage" size="30" class=input placeholder="Ihre Homepage-Adresse"><br><br>


</td><td width=20px></td><td valign=top>
<textarea name="gnachricht" cols="40" rows="6" class=input placeholder="Bitte tragen Sie hier Ihre Nachricht ein!" required></textarea><br><br>
<input type="submit" value="Ins Gästebuch eintragen!" class=input>

</td></tr></table>
</form><br>
<div class=ueberschrift>Beiträge</div>
</div>



<div style="position: relative;top:275px;">
<marquee behavior=alternate scrollamount=0.5>

<?php
$beitrag = file("gaestebuch.txt");
krsort($beitrag);

$beitrag=array_chunk($beitrag, 2);
$count=count($beitrag);


echo "<table><tr>";


for($i = 0; $i < $count; $i++)
{
echo "<td width=325px nowrap><div class=text><div style=padding-right:50px;>";
foreach($beitrag[$i] as $gbeitrag)
{
$gbeitrag = stripslashes($gbeitrag);
$explode = explode("|", $gbeitrag);
echo "<font size=2><i>$explode[0]</i></font size><br>
Von <b>$explode[1]</b>$explode[2]<br>
$explode[3]<br>
$explode[4]<br><br><br>";
}
echo "</div></div></td>";
}
echo "</tr></table>";
?>

</marquee></div>

</div class=content>

</body>
</html>

Wie gesagt bei einem Kollegen der so ein kostenlosen Webhoster hat, funktioniert die Seite tadellos.

Bei mir sieht sie dann nur so aus:
Gästebuch.jpg
 
Zuletzt bearbeitet:
Ja, genau das ist meine Problemlösung, vielen Dank Dreamer.
Die Datei muss wohl mit .php enden. Ich dachte immer der Interpreter sucht sich in allen Dokumenten den php Anteil und führt diesen aus. Anscheind ist dem nicht so. Damit ist mein Problem aber gelöst vielen Dank!
 
Nein, warum sollte er? Je nach Dateiendung verfährt Apache (oder was man eben als Webserver verwendet) anders mit Dateien. Standardsetting ist eben: .html ist HTML, .php und .phtml sind PHP, .pl ist Perl,....

Man KANN natürlich Apache so konfigurieren, dass er jeden Scheiß durch den Interpreter schickt, aber mal ehrlich: Das wäre total bescheuert.
 
Habe PHP5 jetzt so eingestellt, dass er auch HTML Dateien interpretiert. Ist das schlechter als wenn ich einfach die HTML Dateien zu PHP Dateien mache, oder warum?
 
Die meisten Hoster sind so konfiguriert, dass HTML Dateien nicht interpretiert werden.
Das heißt, sobald du deine Seite online stellen willst, wird es sehr wahrscheinlich nicht funktionieren. Spätestens beim Provider Wechsel wird es Probleme geben.
Also mach es gleich richtig, dann gibt es auch keine Probleme.
 
Neben dem, was WhiteShark hinsichtlich der Hoster sagt, ist auch aus anderen Gründen totaler Mumpitz.

- Es ist einfach nicht intuitiv. Warum sollte eine .htmli PHP-Code enthalten? Würdest du in einer .jpg Musik erwarten, oder in einer .mp3 ein Worddokument?
- HTML-Dateien sind statisch, genau wie JS, CSS, Bilder,.... PHP-Dateien sind dynamisch. Wenn du jetzt eigentlich statische Inhalte durch den PHP-Interpreter ballerst, obwohl eh nichts dran zu interpretieren ist, verschwendest du Leistung ohne Ende.
- Die meisten Editoren interpretieren .php als "PHP mit HTML", während .html eben als "nur HTML" interpretiert wird. Das schlägt sich auf Syntax Highlighting und Autovervollständigung nieder. Mit anderen Worten: Du versaust dir damit deine eigene Entwicklungsumgebung
- Der Mist kann dir derb eins in die Kauleiste geben, wenn du dann mal n anständiges Routing implementieren willst.


Also: Mach es richtig. PHP-Code in .php (oder, eher ungewöhnlich .php5, .phtml), HTML-Code in .html, CSS in .css, JS in .js... Versuch nicht das Rad neu zu erfinden. Das Rad ist rund, und das ist es aus sehr gutem Grund.
 
Zurück
Oben