PHP/Apache funzt nit
praetor
- php
0 Christian Kruse0 praetor0 Christian Kruse0 praetor
0 Michael Schröpl0 praetor
Gruezi allseits,
ich habe folgendes Problem:
Ich..
{Systemconfiguration: Mandrake Linux 8.2/Kernel 2.4.18-6mdk/i686
KDE 2.2.2 - aber das ist nicht das Problem :)}
.. habe mir den Apache Webserver (1.3.23) und PHP (4.1.2) installiert. Apache
läuft gut. Aber er führt mir mein in HTML eingebettetes "Hallo Welt-Skript"
nicht aus. Woran kann das liegen?
Ich habe in der httpd.conf nachgeschaut und dort folgende Einträge gefunden:
<IfDefine HAVE_PHP4>
LoadModule php4_module extramodules/libphp4.so
</IfDefine>
<IfDefine HAVE_PHP4>
AddModule mod_php4.c
</IfDefine>
Include conf/addon-modules/php.conf
Die beiden referenzierten Dateien sind auch an ihrem Ort.
Ich habe noch versuchsweise die IfDefine-Tags auskommentiert und nur die
Anweisungen stehen lassen. Aber das hat - auch nach reboot - nix genutzt.
Kann jemand mich helfen oder so?
Vorsichtshalber noch die nicht ausgeführte Anweisung. Der Bildschirm bleibt
einfach leer:
<html>
<head>
<title>Beispiel</title>
</head>
<body>
<?php
echo "Hallo, ich bin ein PHP-Skript!";
?>
</body>
</html>
Gruß
praetor
Hallo,
.. habe mir den Apache Webserver (1.3.23)
Warum eine so alte Version?
Woran kann das liegen?
An vielem :) Handler nicht korrekt gesetzt, Modul nicht geladen, PHP falsch konfiguriert,
etc, etc.
<IfDefine HAVE_PHP4>
LoadModule php4_module extramodules/libphp4.so
</IfDefine>
<IfDefine HAVE_PHP4>
AddModule mod_php4.c
</IfDefine>
Oha. Wie startest du denn den Apachen?
Include conf/addon-modules/php.conf
Was steht in der 'php.conf'?
Ich habe noch versuchsweise die IfDefine-Tags auskommentiert und nur die
Anweisungen stehen lassen. Aber das hat - auch nach reboot - nix genutzt.
Reboot ist da nicht noetig. Du brauchst nur den Apachen neu zu starten.
Vorsichtshalber noch die nicht ausgeführte Anweisung. Der Bildschirm bleibt
einfach leer:
Schau dir mal den Quelltext der Datei an, wenn du sie ueber den Browser aufgerufen hast.
Was siehst du dann?
Gruesse,
CK
Hallo Christian,
zunächst herzlichen Dank für Deine prompte Antwort.
Warum eine so alte Version?
Die liegt halt meint Distribution bei. Ich will sie nur lokal zum Austesten
betreiben. Ist an der Version etwas auszusetzen?
Woran kann das liegen?
An vielem :) Handler nicht korrekt gesetzt, Modul nicht geladen, PHP falsch konfiguriert,
etc, etc.
Au wehe, da habe ich ja noch ein weites Feld vor mir.
Oha. Wie startest du denn den Apachen?
Er wird beim Booten als Dämon geladen.
Was steht in der 'php.conf'?
<IfModule mod_php4.c>
AddType application/x-httpd-php .php .php4 .php3 .phtml
AddType application/x-httpd-php-source .phps
</IfModule>
Reboot ist da nicht noetig. Du brauchst nur den Apachen neu zu starten.
Ja, das weiß ich eigentlich. Aber es ist noch eine Gewohnheit aus der
M$-Zeit.
Schau dir mal den Quelltext der Datei an, wenn du sie ueber den Browser aufgerufen hast.
Was siehst du dann?
Im Quelltext steht der - eben der volle Quelltext einschließlich der PHP-Anwweisung.
Jetzt muß ich mich wohl näher auf Handles und PHP-Konfiguration einrichten.
Beste Grüße
praetor
Hallo,
zunächst herzlichen Dank für Deine prompte Antwort.
Gern.
Warum eine so alte Version?
Die liegt halt meint Distribution bei. Ich will sie nur lokal zum Austesten
betreiben. Ist an der Version etwas auszusetzen?
Sie hat halt Bugs.
Au wehe, da habe ich ja noch ein weites Feld vor mir.
So schlimm ist das nicht, keine Angst.
Oha. Wie startest du denn den Apachen?
Er wird beim Booten als Dämon geladen.
Ja, aber wie? :)
Was steht in der 'php.conf'?
[...]
Sieht aber eigentlich richtig aus.
Schau dir mal den Quelltext der Datei an, wenn du sie ueber den Browser aufgerufen
hast. Was siehst du dann?
Im Quelltext steht der - eben der volle Quelltext einschließlich der PHP-Anwweisung.
Jor, dachte ich mir. Da stimmt was nicht, da scheint das AddType nicht richtig ausgefuehrt
zu werden.
Ich wuerde dir raten, einen Apachen frisch von httpd.apache.org zu saugen (aber einen der
1.3er-Serie).
Gruesse,
CK
Hi CK,
Ich wuerde dir raten, einen Apachen frisch von httpd.apache.org zu saugen (aber einen der
1.3er-Serie).
OK, ich versuche das. Herzlichen Dank nochmal, ich bin jetzt erstmal beschäftigt.
Gruß
praetor
hi praetor,
Die liegt halt meint Distribution bei. Ich will sie
nur lokal zum Austesten betreiben. Ist an der
Version etwas auszusetzen?
es ist halt 'die Version dieser Distribution'.
Das ist insofern ein Nachteil, als es nicht "der
Apache" ist, sondern das, was der Hersteller Deiner
Distribution daraus _gemacht_ hat. Deshalb wird es
eine Weile dauern, bis wir aus Dir alle Änderungen
herausgefragt haben, die Deine Installation von einem
"normalen" Apache unterscheiden.
Der Hersteller Deiner Distribution würde die Beson-
derheiten _seines_ Apache sehr viel besser kennen.
Gibt es dort ein Support-Forum oder so etwas?
Dein Apache ist nicht "schlechter" als ein "reiner"
Apache (abgesehen davon, daß er wahrscheinlich eine
Unmenge vonModulen lädt, die Du gar nicht brauchst).
Nur erfordert er eben das Verständnis Deiner Distri-
bution - und zwar _zusätzlich_ zum reinen Verständnis
von Apache und PHP.
Oha. Wie startest du denn den Apachen?
Er wird beim Booten als Dämon geladen.
Aha. Ich vermute, in irgend einem Boot-Verzeichnis
steht also ein shell-Skript, welches ein Kommando der
Art "<verzeichnispfad>/httpd <parameterliste>" enthält?
Denn eine Besonderheit Deiner Installation ist, daß
Deine Konfiguration den PHP-Interpreter _nur_ dann
lädt, wenn _dieses_ Kommando als Parameter ein "-D
<name> derjenigen Variablen setzt, welche die
<IfDefine>-Direktive abfragt. Die Start-Methode des
"normalen" Apache funktioniert nicht so ... mit dem
würde Deine Konfiguration nicht laufen.
Das sind eben die Probleme eines "vorgefertigten"
Apache: Viele kleine Details sind anders, als sie in
der Apache-Dokumentation beschrieben sind. Und die
mußt Du bei Deiner Fehlersuche alle berücksichtigen.
Im Quelltext steht der - eben der volle Quelltext
einschließlich der PHP-Anweisung.
Dann hat kein PHP-Parser diese Datei verarbeitet,
sondern der Apache sie unverändert ausgeliefert.
Die Zuordnung des PHP-Interpreters zu diesem Namens-
Muster funktioniert also nicht - warum, dafür gibt
es diverse mögliche Ursachen.
Jetzt muß ich mich wohl näher auf Handles und PHP-
Konfiguration einrichten.
Ein "Handle" ist etwas völlig Anderes als ein "Handler"
Viele Grüße
Michael
Hallo Christian,
herzlichen Dank für die sehr ausführliche Antwort. Ich habe das System inzwischen zu laufen bekommen und bin sehr zufrieden damit.
Die Anmerkungen zur Zweischneidigkeit der distributorseitigen Ergänzungen sind natürlich richtig. Besonders unangenehm hab' ich das bei der ISDN-Konfiguration gemerkt. Da sind viele Standard-Konfigurations-Werkzeuge außer Kraft gesetzt und umgangen. Irgendwann in nicht allzuweiter Ferne werde ich mir bestimmt auf debian umsteigen.
Gruß
praetor
hi praetor,
Die liegt halt meint Distribution bei. Ich will sie
nur lokal zum Austesten betreiben. Ist an der
Version etwas auszusetzen?
es ist halt 'die Version dieser Distribution'.
Das ist insofern ein Nachteil, als es nicht "der
Apache" ist, sondern das, was der Hersteller Deiner
...