Maxim: Apache

Hallo,
nachdem ich Apache2.2.4 und PHP5 als CGi(als msi) erfolgreich installiert habe, ist es mir zwar vergönnt html anzeigen zu lassen, aber keine .php dateien, denn dann kommt immer folgende Nachricht:
Bad Request

Your browser sent a request that this server could not understand.
Bei der Installation von PHP wurde unten das Eingetragen in der httpd Datei:
ScriptAlias /php/ "D:\Server\PHP"
Action application/x-httpd-php "D:\Server\PHP\php-cgi.exe"
Zusätzlich von mir noch:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5
AddType application/x-httpd-php .php3

Nachdem ich sämtliche Foren durchschaut habe, ohne eine passende Antwort daraufzufinden hoffe ich, das man mir hier weiterhelfen kann.
mfg Maxim

  1. hi,

    nachdem ich Apache2.2.4 und PHP5 als CGi(als msi) erfolgreich installiert habe, ist es mir zwar vergönnt html anzeigen zu lassen, aber keine .php dateien, denn dann kommt immer folgende Nachricht:
    Bad Request

    Und was steht in den Logs?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      nachdem ich Apache2.2.4 und PHP5 als CGi(als msi) erfolgreich installiert habe, ist es mir zwar vergönnt html anzeigen zu lassen, aber keine .php dateien, denn dann kommt immer folgende Nachricht:
      Bad Request

      Und was steht in den Logs?

      gruß,
      wahsaga

      Logs sehen so aus
      127.0.0.1 - - [06/Mar/2007:10:54:02 +0100] "GET /test.php HTTP/1.1" 400 226
      127.0.0.1 - - [06/Mar/2007:10:54:51 +0100] "GET /test.php HTTP/1.1" 400 226
      127.0.0.1 - - [06/Mar/2007:10:56:57 +0100] "GET /test.php HTTP/1.1" 400 226
      127.0.0.1 - - [06/Mar/2007:10:56:58 +0100] "GET /test.php HTTP/1.1" 400 226
      127.0.0.1 - - [06/Mar/2007:11:01:51 +0100] "GET /test.php HTTP/1.1" 400 226
      127.0.0.1 - - [06/Mar/2007:11:04:56 +0100] "GET /test.php HTTP/1.1" 400 226
      127.0.0.1 - - [06/Mar/2007:11:05:18 +0100] "GET /index.html HTTP/1.1" 200 44
      127.0.0.1 - - [06/Mar/2007:11:05:39 +0100] "GET /test.html HTTP/1.1" 200 30
      127.0.0.1 - - [06/Mar/2007:11:05:52 +0100] "GET /test.php5 HTTP/1.1" 200 30
      127.0.0.1 - - [06/Mar/2007:11:06:05 +0100] "GET /test.php4 HTTP/1.1" 200 30
      Um mich nochmals zu versichern, die Dateien (php) kommen in htdocs rein richtig?

      Gruß Maxim

      1. hi,

        Logs sehen so aus
        127.0.0.1 - - [06/Mar/2007:10:54:02 +0100] "GET /test.php HTTP/1.1" 400 226

        Ja, fein - dass es einen 400 als Antwort gibt, wussten wir ja bereits.

        Und jetzt schaust du bitte mal nicht nur ins Access-Log, um uns Dinge mitzuteilen, die wir bereits wissen, sondern mal ins Error-Log.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          Logs sehen so aus
          127.0.0.1 - - [06/Mar/2007:10:54:02 +0100] "GET /test.php HTTP/1.1" 400 226

          Ja, fein - dass es einen 400 als Antwort gibt, wussten wir ja bereits.

          Und jetzt schaust du bitte mal nicht nur ins Access-Log, um uns Dinge mitzuteilen, die wir bereits wissen, sondern mal ins Error-Log.

          gruß,
          wahsaga

          Aso Fehler sieht so aus
          Invalid URI in request GET /test.php HTTP/1.1
          ich kann damit nichts anfangen

          Gruß
          Maxim

  2. hallo,

    Bei der Installation von PHP wurde unten das Eingetragen in der httpd Datei:
    ScriptAlias /php/ "D:\Server\PHP"
    Action application/x-httpd-php "D:\Server\PHP\php-cgi.exe"

    Der Apache mag nun einmal an dieser Stelle keine Backslashes. Also schreibst du bitte:
      ScriptAlias /php/ "D:/Server/PHP"
      Action application/x-httpd-php "D:/Server/PHP/php-cgi.exe"

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. hallo,

      Bei der Installation von PHP wurde unten das Eingetragen in der httpd Datei:
      ScriptAlias /php/ "D:\Server\PHP"
      Action application/x-httpd-php "D:\Server\PHP\php-cgi.exe"

      Der Apache mag nun einmal an dieser Stelle keine Backslashes. Also schreibst du bitte:
        ScriptAlias /php/ "D:/Server/PHP"
        Action application/x-httpd-php "D:/Server/PHP/php-cgi.exe"

      Grüße aus Berlin

      Christoph S.

      Trotz der Änderung ist immernoch dasselbe Problem.
      Gruß Maxim

      1. hallo,

        Der Apache mag nun einmal an dieser Stelle keine Backslashes. Also schreibst du bitte:
          ScriptAlias /php/ "D:/Server/PHP"
          Action application/x-httpd-php "D:/Server/PHP/php-cgi.exe"
        Trotz der Änderung ist immernoch dasselbe Problem.

        Gut, dann korrigierst du bitte noch so:
           Action application/x-httpd-php "/php/php-cgi.exe"
        Dazu hast du ja schließlich deinen ScriptAlias definiert. Und dann schaust du noch nach, ob mod_cgi aktiviert ist - also die Zeile
           LoadModule cgi_module modules/mod_cgi.so

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. hallo,

          Der Apache mag nun einmal an dieser Stelle keine Backslashes. Also schreibst du bitte:
            ScriptAlias /php/ "D:/Server/PHP"
            Action application/x-httpd-php "D:/Server/PHP/php-cgi.exe"
          Trotz der Änderung ist immernoch dasselbe Problem.

          Gut, dann korrigierst du bitte noch so:
             Action application/x-httpd-php "/php/php-cgi.exe"
          Dazu hast du ja schließlich deinen ScriptAlias definiert. Und dann schaust du noch nach, ob mod_cgi aktiviert ist - also die Zeile
             LoadModule cgi_module modules/mod_cgi.so

          Grüße aus Berlin

          Christoph S.

          Nun gut, das Problem ist damit immernoch nicht behoben:
          Einerseits kann ich zwar unter localhostdie Nachricht It Works erhalten, aber andereseits wenn ich dann
          http://localhost/test.php danach suche kommt:
          Not Found

          The requested URL /PHP/php-cgi.exe/test.php was not found on this server.

          1. hallo,

            Einerseits kann ich zwar unter localhostdie Nachricht It Works erhalten, aber andereseits wenn ich dann
            http://localhost/test.php danach suche kommt:
            Not Found
            The requested URL /PHP/php-cgi.exe/test.php was not found on this server.

            Schau dir doch deine Fehlermeldung genau an. Sie verrät dir die Ursache. Deine URL hast du doch als "http://localhost/test.php" angegeben, und nicht als "/PHP/php-cgi.exe/test.php". Was hast du als DocumentRoot angegeben und wo liegt deine test.php?
            Und dann hast du noch dein log:
            127.0.0.1 - - [06/Mar/2007:11:04:56 +0100] "GET /test.php HTTP/1.1" 400 226
            127.0.0.1 - - [06/Mar/2007:11:05:39 +0100] "GET /test.html HTTP/1.1" 200 30
            127.0.0.1 - - [06/Mar/2007:11:05:52 +0100] "GET /test.php5 HTTP/1.1" 200 30
            127.0.0.1 - - [06/Mar/2007:11:06:05 +0100] "GET /test.php4 HTTP/1.1" 200 30
            Das sagt dir, daß die Anforderung von test.php mit dem HTTP-Statuscode 400, also "bad request" beantwortet wurde. "test.php5" müßte allerdings korrekt angezeigt worden sin.

            Grüße aus Berlin

            Christoph S.

            --
            Visitenkarte
            ss:| zu:) ls:& fo:) va:) sh:| rl:|
            1. hallo,

              Einerseits kann ich zwar unter localhostdie Nachricht It Works erhalten, aber andereseits wenn ich dann
              http://localhost/test.php danach suche kommt:
              Not Found
              The requested URL /PHP/php-cgi.exe/test.php was not found on this server.

              Schau dir doch deine Fehlermeldung genau an. Sie verrät dir die Ursache. Deine URL hast du doch als "http://localhost/test.php" angegeben, und nicht als "/PHP/php-cgi.exe/test.php". Was hast du als DocumentRoot angegeben und wo liegt deine test.php?
              Und dann hast du noch dein log:
              127.0.0.1 - - [06/Mar/2007:11:04:56 +0100] "GET /test.php HTTP/1.1" 400 226
              127.0.0.1 - - [06/Mar/2007:11:05:39 +0100] "GET /test.html HTTP/1.1" 200 30
              127.0.0.1 - - [06/Mar/2007:11:05:52 +0100] "GET /test.php5 HTTP/1.1" 200 30
              127.0.0.1 - - [06/Mar/2007:11:06:05 +0100] "GET /test.php4 HTTP/1.1" 200 30
              Das sagt dir, daß die Anforderung von test.php mit dem HTTP-Statuscode 400, also "bad request" beantwortet wurde. "test.php5" müßte allerdings korrekt angezeigt worden sin.

              Grüße aus Berlin

              Christoph S.

              Also mir verrät das nichts.
              Die test.php5 hat er aber nicht als Php sondern als Text angezeigt.
              Desweiteren ist der Documentroot wie folgt: <Directory "D:/Server/Apache/htdocs">
              Zusätzlich steht jetzt so wie du empfohlen hast

              ScriptAlias /php/ "D:/Server/PHP"
              Action application/x-httpd-php "/PHP/php-cgi.exe"
              AddType application/x-httpd-php .php
              AddType application/x-httpd-php .php4
              AddType application/x-httpd-php .php5
              AddType application/x-httpd-php .php3

              und der Fehler ist nun folgender wieder
              Not Found

              The requested URL /PHP/php-cgi.exe/test.php was not found on this server.
              Wenn ich das in den Browser (firefox) eingebe:
              http://localhost/PHP/php-cgi.exe/test.php
              dazugehörige logs
              127.0.0.1 - - [06/Mar/2007:15:28:20 +0100] "GET /PHP/php-cgi.exe/test.php HTTP/1.1" 404 222
              127.0.0.1 - - [06/Mar/2007:15:29:07 +0100] "GET /PHP/php-cgi.exe/test.php HTTP/1.1" 404 222
              127.0.0.1 - - [06/Mar/2007:15:29:27 +0100] "GET /PHP/php-cgi.exe/test.php HTTP/1.1" 404 222

              1. Hallo Maxim.

                ScriptAlias /php/ "D:/Server/PHP"
                Action application/x-httpd-php "/PHP/php-cgi.exe"

                Ob’s daran liegt, kann ich nicht sagen, aber ScriptAlias unterscheidet zwischen Groß- und Kleinschreibung.

                Einen schönen Dienstag noch.

                Gruß, Mathias

                --
                ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                debian/rules
              2. hallo,

                sei so gut und mache bitte kein full quoting.

                Die test.php5 hat er aber nicht als Php sondern als Text angezeigt.

                Aha. Und was sagt dir das?

                Desweiteren ist der Documentroot wie folgt: <Directory "D:/Server/Apache/htdocs">

                Das kann man so machen - allerdings würde ich es vorziehen, die DocumentRoot auf ein Verzeichnis zu legen, das keine Programmdateien enthält.

                Zusätzlich steht jetzt so wie du empfohlen hast
                ScriptAlias /php/ "D:/Server/PHP"
                Action application/x-httpd-php "/PHP/php-cgi.exe"

                Das habe ich _nicht_ empfohlen. Apache unterscheidet Groß- und Kleinschreibung. Allerdings steckt möglicherweise noch ein entscheidender Fehler darin, den ich übersehen habe. Schreibe mal
                  ScriptAlias /php/ "D:/Server/PHP/"
                Also noch ein Slash am Ende.

                und der Fehler ist nun folgender wieder
                The requested URL /PHP/php-cgi.exe/test.php was not found on this server.

                Natürlich - weil dein ScriptAlias nicht gefunden werden kann.

                Wenn ich das in den Browser (firefox) eingebe:
                http://localhost/PHP/php-cgi.exe/test.php

                ... machst du etwas sehr falsch und produzierst naturgemäß den Fehlzugriff im access.log. Du wolltest eintragen:
                   http://localhost/test.php

                dazugehörige logs
                127.0.0.1 - - [06/Mar/2007:15:28:20 +0100] "GET /PHP/php-cgi.exe/test.php HTTP/1.1" 404 222

                Immerhin jetzt 404, also tatsächlich "nicht gefunden". Das kommt daher, daß du vermutlich kein Verzeichnis
                  D:/Server/Apache/htdocs/PHP/php-cgi.exe
                eingerichtet hast. Das solltest du auch nicht tun.

                Es gibt in deinem PHP-Verzeichnis eine kleine Textdatei "install.txt". Die solltest du bei Gelegenheit gründlich lesen.

                Grüße aus Berlin

                Christoph S.

                --
                Visitenkarte
                ss:| zu:) ls:& fo:) va:) sh:| rl:|
                1. Danke erstmal für die Hilfe

                  Es gibt in deinem PHP-Verzeichnis eine kleine Textdatei "install.txt". Die solltest du bei Gelegenheit gründlich lesen.

                  Nun gut, wenn ich es aber nach mehren Anleitungen ausprobiert habe (habe sogar nen Buch dazu)

                  Aber nochmal ein letztes Kommentar, vielleicht gibt dir das ne Aussage zu dem Fehler:
                  [Tue Mar 06 19:08:34 2007] [error] [client 127.0.0.1] Invalid URI in request GET /test.php HTTP/1.1

                  Übrigens hast du dich vermutlich getäuscht, dass ich hier D/Server wegnehmen soll, denn dann sagt er nur, dass die Ordner nicht vorhanden sind.

                  Action application/x-httpd-php "D/Server/PHP/php-cgi.exe"

                  Gruß Maxim

                  1. Hallo,

                    [...] (habe sogar nen Buch dazu)

                    ist mir neu, dass "Buch" ein Maskulinum wäre ...

                    Action application/x-httpd-php "D/Server/PHP/php-cgi.exe"

                    Nee, den Doppelpunkt nach dem Laufwerksbuchstaben musst du natürlich stehenlassen! Schließlich ist D/Server etwas ganz anderes (nämlich ein relativ adressiertes Verzeichnis) als D:/Server (nämlich ein absolut adressiertes Verzeichnis im Root von D:).

                    Ciao,
                     Martin

                    --
                    "Life! Don't talk to me about life!"
                      (Marvin, the paranoid android in Douglas Adams' "The Hitchhiker's Guide To The Galaxy"
                    1. [...] (habe sogar nen Buch dazu)

                      ist mir neu, dass "Buch" ein Maskulinum wäre ...

                      Jop, es tut mir Leid das ich nicht ein schreiben konnte, trotzdem ist glaube cih umgangssprachlich nen Buch für ein Buch steht.

                      Action application/x-httpd-php "D/Server/PHP/php-cgi.exe"

                      Nee, den Doppelpunkt nach dem Laufwerksbuchstaben musst du natürlich stehenlassen! Schließlich ist D/Server etwas ganz anderes (nämlich ein relativ adressiertes Verzeichnis) als D:/Server (nämlich ein absolut adressiertes Verzeichnis im Root von D:).

                      Jope ist ausgeführt, aber trotzdem ist es immernoch derselbe Fehler sprich
                      [Tue Mar 06 20:02:03 2007] [error] [client 127.0.0.1] Invalid URI in request GET /test.php HTTP/1.1
                      ... ich will doch nur PHP Programmieren xD

                      Gruß Maxim

                      1. Hallo,

                        [...] (habe sogar nen Buch dazu)
                        ist mir neu, dass "Buch" ein Maskulinum wäre ...
                        Jop, es tut mir Leid das ich nicht ein schreiben konnte, trotzdem ist glaube cih umgangssprachlich nen Buch für ein Buch steht.

                        nee, eher nicht. "ein Buch" verkürzt sich in der Umgangssprache gern auf "'n Buch", meinetwegen sogar ohne Apostroph - aber niemals auf "nen".

                        Ciao,
                         Martin

                        --
                        Niemand lebt allein von seinen Träumen.
                        Aber wer träumt, lebt noch.
                        1. Hallo
                          Ja ka wie ich darauf kam, trotzdem danke für die Dachlichkeit in deiner Antowrt
                          Gruß Maxim

                  2. hallo,

                    Übrigens hast du dich vermutlich getäuscht, dass ich hier D/Server wegnehmen soll, denn dann sagt er nur, dass die Ordner nicht vorhanden sind.
                    Action application/x-httpd-php "D/Server/PHP/php-cgi.exe"

                    Ich habe mich keineswegs getäuscht, aber du hast nicht richtig gelesen. Auch Mathias Brodala hat dir geschrieben, daß der Apache Groß- und Kleinschreibung unterscheidet. Und es geht nicht darum, irgendetwas "wegzunehmen", sondern es geht darum, dein "ScriptAlias" einzusetzen, dazu hast du es doch definiert. Also mach bitte
                      Action application/x-httpd-php "/php/php-cgi.exe"

                    Ich habe mal zum Vergleich meinen eigenen Apache (WindowsXP, Apache 2.2.4, PHP6) auch auf "CGI" umgestellt. Bei mir sieht das dann so aus:
                      ScriptAlias /php/ "D:/PHP/"
                      Action application/x-httpd-php "/php/php-cgi.exe"
                      AddType application/x-httpd-php .php
                    Das ist alles, und damit funktioniert es. Allerdings würde ich dir eher empfehlen, nicht diese CGI-Variante, sondern die Modul-Variante zu benutzen, damit kannst du etwas mehr anfangen.

                    Grüße aus Berlin

                    Christoph S.

                    --
                    Visitenkarte
                    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    2. hallo,

      Bei der Installation von PHP wurde unten das Eingetragen in der httpd Datei:
      ScriptAlias /php/ "D:\Server\PHP"
      Action application/x-httpd-php "D:\Server\PHP\php-cgi.exe"

      Der Apache mag nun einmal an dieser Stelle keine Backslashes. Also schreibst du bitte:
        ScriptAlias /php/ "D:/Server/PHP"
        Action application/x-httpd-php "D:/Server/PHP/php-cgi.exe"

      Grüße aus Berlin

      Christoph S.

      Also ich habe das gemacht, aber es kommt trotzdem derselbe Fehler
      Gruß
      Maxim