Dirk M.: CGI Fehler bei PHP3Aufruf unt WinNT/IIS4

Servus miteinander,

ein reichlich genervter Installateur verzweifelt gerade an PHP3 Installation unter
Win NT4 SP6a, IIS4 Option Pack.

Habe ein Projekt im Stammverzeichnis Inetpub/wwwroot/projektname/test.php3

Habe mich an die Installationsanleitung von PHP3 für WINNT und IIS4 gehalten:

1. in E:\Programme\PHP3 extrahiert (PHP3 Vers. 3.0.16)
2. php3.ini nach WINNT kopiert und Pfade angepaßt (extension_dir "E:\Programme\PHP3", doc_root auf "E:\Inetpub\wwwroot")
3. module bleiben zunächst alle deaktiv ???!
4. browsercap.ini auf WINNT SubVerzeichnis eingestellt

5. php_iis_reg.inf Pfade angepaßt und anschließend ausgeführt. Extension für .php3, .php, .phtml

6. In IIS4 ManagementKonsole die EIGENSCHAFT DES Projektverzeichnisses projektname habe ich entsprechende
Extensions mit E:\Programme\PHP3\php.exe %s %s gemappt

Sollte doch nun laufen, oder ???...

habe ein test.php3 geschrieben, die Text echo'en soll. Das echo wird verschieden aufgerufen:
1. per script tag mit language = "php"
2. per <% %>
3. per <?php .. ?php>
und normaler Text

Rufe ich nun http://localhost/projektname/test.php3 im IE5 auf, so erhalte ich eine CGI Fehlermeldung
der Art :"CGI ERROR  The specified CGI application misbehaved by not returning a complete set of HTTP
headers. The headers it did return are : "  keine returned

Speichere ich die Test.php3 unter test.html, so wird der nicht PHP3 Bereich abgebildet. PHP3 Code ist
scheinbar ignoriert. Der Hinweis im Markt und Technik Buch php von Schmid etc.. die php.exe in das CGI-BIN
Verzeichnis zu kopieren scheint nicht notwendig oder bewirkt nichts. Habe ein CGI-BIN unter E:\Inetpub\wwwroot
angelegt mit ausführen.

Warum will die Testseite nicht funzen ???? :'-((

Kann mir jemand helfen... sonst muß ich doch noch den Apache installieren und dort ausprobieren.
Bis morgen, Dirk

  1. Hi Dirk!

    Zwischenfrage:

    1. module bleiben zunächst alle deaktiv ???!

    Trotzdem Du die Kommentarzeichen vor den Modules geloescht hast?

    1. In IIS4 ManagementKonsole die EIGENSCHAFT DES Projektverzeichnisses projektname habe ich entsprechende

    »»  Extensions mit E:\Programme\PHP3\php.exe %s %s gemappt

    Wie gemappt? Normalerweise direkt in den Properties des Servers (also Eintrag links und nicht im doc-root).
    Hast Du auch PUT,DELETE in den Exclusions?

    Pruefe nochmal in der ini und in der ...reg.inf alle Pfade, notfalls auch im regedit.

    Ich habe auch am Anfang Probleme damit gehabt. Ist beim Omni einfacher. Meist hapert es an Kleinigkeiten.

    Gruß
    Thomas

    1. Servus, Thomas,

      1. module bleiben zunächst alle deaktiv ???!

      das bedeutet, daß ich alle Module, die mit ; auskommentiert sind (defaultmäßig) auch auskommentiert gelassen habe..oder
      muß ich da welche aktivieren. Habe derzeit noch keine Datenbank laufen, zukünftig werde ich aber eine AccessDB via ODBC
      aktivieren oder gibts da schon neuer Module seitens PHP ?!

      Trotzdem Du die Kommentarzeichen vor den Modules geloescht hast?

      Habe sie NICHT gelöscht, sondern gelassen. Soory, war etwas mißverständlich formuliert, aber nachdem ich mehrere Stunden
      verzweifelt daran feilte und es nicht laufen will, glaube ich kann das mal passieren.?! ;-)

      Wie gemappt? Normalerweise direkt in den Properties des Servers (also Eintrag links und nicht im doc-root).

      Via MMC-Eigenschaften Basisverzeichnis und virtuellem Projektverzeichnis -Eigenschaftsfenster-Verzeichnis/virtuelles Verzeichnis
      -Einstellung der Anwendung-Konfiguration-Zuordnung von Anwendungen : Erweiterung: .php Programmpfad : E:\PHP3\php.exe %s %s WOBEI ICH
      DERZEIT PHP3 nochmals unter E:\PHP3 installiert habe, um konform mit der Anleitung zu gehen.

      Hast Du auch PUT,DELETE in den Exclusions?

      Zunächst nicht, jetzt schon, hat nichts bewirkt

      Pruefe nochmal in der ini

      Habe ich: hier die Einträge, die zweifelhaft sind:

      muß ich das doc_dir mit "E:\Inetpub\wwwroot" oder mit "E:\Inetpub\wwwroot" oder gar mit "E:\Inetpub\wwwroot\projektname" () mappen?! oder
      gar ganz leer lassen, wie ich es bei diversen Foren ab und an gelesen habe ?! Habe alles schonmal ausprobiert, keine Änderung sichtbar.
      und in der ...reg.inf alle Pfade, notfalls auch im regedit.

      Meist hapert es an Kleinigkeiten.

      Scheint so.

      Hier noch die Registryeinträge : HKCR: .php Standard "phpfile" auch für alle anderen (.php3,.phtml)
      phpfile Standard "PHP Script" EditFlag 00 00 01 00
        _ shell
             _open  EditFlag 01 00 00 00
                 _command "E:\PHP3\php.exe %1"

      HKLM: in w3svc....Script Map : .php "E:\PHP3\php.exe %s %s" auch für .php3,.phtml

      Ja so schauts aus. Werde nunauf meinem Laptop mal Apache installieren und PHP3 dort. Ebenfalls mit MS LoopBack NetzwerkAdapter mit IEEE 802,3.
      Mal schauen, ob es dann klappt.

      Dennoch, wenn Du oder irgendjemand Erfahrung mit dem gleichen Problem gemacht hat und es lösen konnte... HILFE, Buuäähhhh :'-((
      Gruß, Dirk

      1. Hi Dirk!

        Also auf den ersten Blick faellt mir nichts auf (ich bin allerdings nicht unfehlbar ;-).

        Was Dein Script betrifft:

        1. Trag den Pfad zu php3 in PATH mit ein.
        2. oeffne eine console / pfad ist loc des script
        3. gib ein php test.php3
        4. poste, was er dazu sagt (evtl. fehlermeldungen)

        achso, schau auch nach dem aufruf mal in den taskmanager, ob php noch aufgelistet ist.

        Gruß
        Thomas

        1. Servus, Thomas

          1. Trag den Pfad zu php3 in PATH mit ein.

          erledigt ! Erhalte aber bei Abfrage der Pathvariablen in der DOS Box den angegebenen Pfad nicht angezeigt.
          Ich erhalte jediglich ein paar Angaben und ab einer gewissen Anzahl bricht die Pfadangabe einfach ab. BSP.:
          E:\WINNT\System;E:\WINNT;bla...bla. bla...einige weiter Pfade und dann in der 2.Zeile plötzlich folgendes:
          pfadx;E: bricht einfach so ab. Ist die Länge der path Variablen beschränkt? Kann ich via weiterer Pathvariablen
          (bspw. path_ext pfady;pfadz;%path%) die Pfade doch noch aktivieren? Oder sind diese trotzdem aktiv ?!

          » 3. gib ein php test.php3

          in dos box folgendes eingegeben : bin in E:\PHP3 und gebe php "E:\pfad1\pfad2\test.php" ein.

          1. poste, was er dazu sagt (evtl. fehlermeldungen)

          X-Powered-By: PHP/3.0.16
          Content-type: text/html

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

          <HTML>
          <HEAD>
          <TITLE>test</TITLE>
          <!-- meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" -->

          </HEAD>
          <BODY>
          <br>Diees ist normaler Text.<br><br>
          hier wird php Code ausgeführt<br>
          <% echo phpinfo(); %>
          <br>
          Weiter alternativ mit ?php<br>
          Hier gehts weiter ohne php....
          </BODY>
          </HTML>

          Genau so. Im PHP Pfad scheint es zu funzen?! Außerhalb des PHP-Pfades funzt es via DOS-Box
          ebenfalls. Scheint die Pfadangabe doch nach der Deklaration zu kennen.

          Nur unter im Browser kommt immer wieder diese CGI Fehlermeldung. Habe ich da an der Deklarationdes CGI-BIN irgendetwas falsch
          gemacht? Woher koomt dieser Fehler überhaupt? Ich habe einmal zusätzlich ein CGI-BIN Verzeichnis angelegt, da es nur das Script Verzeichnis gibt. Habe es
          unter E:\Inepub\wwwroot als physisch als cgi-bin mit Webfreigabe "/cgi-bin" mit Zugriff "ausführen" und "Skript" angelegt. Es ist somit als virtuelles
          Verzeichnis im MMC sichtbar. Das Verzeichnis selbst hat Berechtigung Jeder Vollzugriff (alle)(alle). Verdammt, wo liegt hier bloß der Wurm ??!

          ÜBRIGENS:

          Habe Apache auf Laptop installiert und nun, man staune und merke auf :-))), PHP3 funzt,
          wenn man strickt nach Anweisung vorgeht. Nru ein Problem habe ich jetzt, da
          Apache ja längst nicht so komfortabel zu bedienen ist... wie lege ich ein Stammverzeichnis
          wwwroot an. Wie virtuelle Verzeichnisse, die auf meine Projekte zeigen. In http.conf sind diverse
          Zeilen dafür vorgesehen, da kapiere ich aber nur die Hälfte, wie man das dort macht, etc..
          Muß mal wirklich in weiteren Stunden die Anleitung in Deutsch zurate ziehen (gibts die? und wo?)

          achso, schau auch nach dem aufruf mal in den taskmanager, ob php noch aufgelistet ist.

          Das geht so schnell, da kann man kaum was sehen... jedenfalls ist php.exe nach Abschluß des DOS-Befehls nicht mehr aktiv.

          Werde vielleicht doch zu Apache wechseln. Dort funzt es richtig gut. <nur das Einrichten von Virteullen Verzeichnissen etc.. wird wohl wieder problematisch, da umständlich..
          Icvh sehe schon ... viel Arbeit und wenig Lohn .... Weltenschmerz überkommt mich....
          Gruß Dirk

          Thomas

          1. Habe Apache auf Laptop installiert und nun, man staune und merke auf :-))), PHP3 funzt,
            wenn man strickt nach Anweisung vorgeht. Nru ein Problem habe ich jetzt, da
            Apache ja längst nicht so komfortabel zu bedienen ist... wie lege ich ein Stammverzeichnis

            »»  wwwroot an. Wie virtuelle Verzeichnisse, die auf meine Projekte zeigen. In http.conf sind diverse
            »»  Zeilen dafür vorgesehen, da kapiere ich aber nur die Hälfte, wie man das dort macht, etc..

            Muß mal wirklich in weiteren Stunden die Anleitung in Deutsch zurate ziehen (gibts die? und wo?)

            Deutsch? Weia ... ;-)

            http://www.apache.org/docs/mod/mod_alias.html#alias ist das passende Kapitel im englischen Original-Handbuch:

            Einfach

            Alias <url> <pfad>

            und fertig.

            Es sei denn, Du mußt für diese Verzeichnisse dann wieder Rechte und Eigenschaften definieren (weiter geht's mit http://www.apache.org/docs/mod/core.html#directory) - ganz ohne Verständnis der Möglichkeiten eines Webservers geht es halt nicht
            Aber eins nach dem anderen, und Du kannst ja weitere Fragen stellen, wenn es irgendwo hängt.

            Werde vielleicht doch zu Apache wechseln.

            Willkommen im Club. ;-)

            Dort funzt es richtig gut. <nur das Einrichten von Virteullen Verzeichnissen etc.. wird wohl wieder problematisch, da umständlich.

            Geschmackssache.
            Ich lese lieber eine gut dokumentierte Apache-Konfiguration, als mich in der Windows-Registry zurecht zu finden.

          2. Hi Dirk!

            In Sachen Apache schliesse ich mich Michael an:
            Muesste zuhause mal meine conf rauskramen und Dir mailen.

            Was den iis angeht, puhhh! Eventuell die exec-rechte fuer den I_USR? Es ist mit Sicherheit eine Kleinigkeit.
            Vielleicht auch die HTTP Keep-Alives nicht eingeschalten? Ich hatte das Problem noch nicht.

            frag vielleicht parallel mal im NT-Forum: http://www.spotlight.de/foren/wnt/forum_wnt.htm.

            Mehr kann ich leider auch nicht sagen.

            Gruß
            Thomas

    2. Ich vergaß, hier noch meine test.php Quellcode. Vielleicht fehlt ja nur was, aber
      das sieht eigentlich wie im Buch aus oder etwa nich:

      Ich hoffe, das Forum interpretiert den Code jetz nicht .....knabber... :-S

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

      <HTML>
      <HEAD>
      <TITLE>test</TITLE>
      <!-- meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" -->

      </HEAD>
      <BODY>
      <br>Diees ist normaler Text.<br><br>
      <!-- script language="php">
      echo "hier wird php Code ausgeführt";
      </script -->
      <br>
      <% echo phpinfo(); %>
      <br>
      <?php
      echo "Weiter alternativ mit ?php";
      ?>
      <br>
      Hier gehts weiter ohne php....
      </BODY>
      </HTML>

      Fehlt was ?, Gruß Dirk