praetor: PHP/Apache funzt nit

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

  1. 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

    1. 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

      1. 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

        1. 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

      2. 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"

        • nur damit Du nicht mit den Begriffen durcheinander
          kommst (z. B. bei der Bedienung einer Suchmaschine).

        Viele Grüße
              Michael

        1. 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
          ...