Denny Sander: Premature end of script headers:

ich weiß es ist schon oft durchgekaut worden aber ich komme trozdem nicht weiter.

Also folgendes ist die Sachlage:

ich hab ein kleines sript geschrieben welches bei mit auch funktioniert. Jemand wollte das haben, und so habe ich das direkt in sein vezeichnis kopiert ( direkt auf dem server mit dem MC ), und anschließend noch den chown geändert (ich bin web7 und web16) so ...

jetzt kommts .. das script geht nicht ... nach allerlei versuchen und einer lesestunde hier im forum hab ich nun folgedes script erstellt:
------------------------------------------
#! /usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html \n\n";
print "TEST";
------------------------------------------

welches auch bei mir funktioniert.

nicht aber in dem web von dem anderen obwohl alles richtig gesetzt ist ..

hat jemand eine idee ?

  1. Hallo,

    ich hab ein kleines sript geschrieben welches bei mit auch funktioniert. Jemand wollte das haben, und so habe ich das direkt in sein vezeichnis kopiert ( direkt auf dem server mit dem MC ), und anschließend noch den chown geändert (ich bin web7 und web16) so ...

    chown geändert? Wieso änderst Du das Kommando?
    Es hätte doch vollkommen gereicht, den Eigentümer der Datei mit Hilfe des Kommandos chown zu ändern... ;-)

    Sind Eigentümer und Zugriffsrechte korrekt (Zugriffsrechte sollten rwxr-xr-x sein).

    #! /usr/bin/perl -w

    Stimmt der Pfad?
    Falls ja, laß das Leerzeichen zwischen ! und / weg.

    Andreas

    1. chown geändert? Wieso änderst Du das Kommando?
      Es hätte doch vollkommen gereicht, den Eigentümer der Datei mit Hilfe des Kommandos chown zu ändern... ;-)

      arg das meinte ich auch

      Sind Eigentümer und Zugriffsrechte korrekt (Zugriffsrechte sollten rwxr-xr-x sein).

      ja die sind alle in ordnung

      #! /usr/bin/perl -w

      Stimmt der Pfad?
      Falls ja, laß das Leerzeichen zwischen ! und / weg.

      das bingt auch nichts ... das script ist so wie es ist auf dem selben server ja lauffähig ... halt nur in einem anderen "WEB"
      ( auf dem server sind mehrere domains ... meine auch und da läufts)

      1. das bingt auch nichts ... das script ist so wie es ist auf dem selben server ja lauffähig ... halt nur in einem anderen "WEB"
        ( auf dem server sind mehrere domains ... meine auch und da läufts)

        ist für das Verzeichnis, in dem das Script liegt, das Ausführen von CGI erlaubt?

        Was steht im error.log?

        1. ist für das Verzeichnis, in dem das Script liegt, das Ausführen von CGI erlaubt?

          Ja das ist so ....
          ScriptAlias /cgi-bin/ /usr/local/httpd/htdocs/kunden/web16/html/cgi-bin/

          Was steht im error.log?

          [Sun Aug 11 22:07:23 2002] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: /usr/local/httpd/htdocs/kunden/web
          16/html/cgi-bin/test.pl

          (siehe thema)

          1. ist für das Verzeichnis, in dem das Script liegt, das Ausführen von CGI erlaubt?

            Ja das ist so ....
            ScriptAlias /cgi-bin/ /usr/local/httpd/htdocs/kunden/web16/html/cgi-bin/

            gibt es für das Verzeichnis einen directory oder location-Eintrag?
            Was steht dort bei den Options?

            1. ist für das Verzeichnis, in dem das Script liegt, das Ausführen von CGI erlaubt?

              Ja das ist so ....
              ScriptAlias /cgi-bin/ /usr/local/httpd/htdocs/kunden/web16/html/cgi-bin/

              gibt es für das Verzeichnis einen directory oder location-Eintrag?
              Was steht dort bei den Options?

              nein das is ein virtueller server der wie folg konf. ist:

              <VirtualHost xxx.xxx.xxx.xxx>
              ServerName www.server.de
              ServerAlias  www.server.com
              DocumentRoot /usr/local/httpd/htdocs/kunden/web16/html
              User web16
              Group ftponly
              ScriptAlias /cgi-bin/ /usr/local/httpd/htdocs/kunden/web16/html/cgi-bin/
              php_admin_value open_basedir /usr/local/httpd/htdocs/kunden/web16
              php_admin_value upload_tmp_dir /usr/local/httpd/htdocs/kunden/web16/phptmp
              ErrorLog /usr/local/httpd/htdocs/kunden/web16/log/error_log
              </VirtualHost>

            2. gibt es für das Verzeichnis einen directory oder location-Eintrag?
              Was steht dort bei den Options?

              nachtrag:
              <Location /cgi-bin>
              AllowOverride None
              Options +ExecCGI -Includes
              SetHandler cgi-script
              </Location>

              ist als standart für virtuelle server ... also auch für meinen wo das script ja funktioniert

              1. nachtrag:
                <Location /cgi-bin>
                AllowOverride None
                Options +ExecCGI -Includes

                Auf das wollte ich raus.

                Was mir jetzt noch als letztes einfällt:

                Aus Deinem anderen Posting:

                ScriptAlias /cgi-bin/ /usr/local/httpd/htdocs/kunden/web16/html/cgi-bin/

                und aus diesem:

                <Location /cgi-bin>

                Ich weiß, daß es bei Alias einen Unterschied macht, ob man den / am Ende setzt oder nicht.

                Kann das auch hier das Problem sein?
                Bei der Location ist keiner am Ende, beim ScriptAlias schon.

                Andreas

                1. nachtrag:
                  <Location /cgi-bin>
                  AllowOverride None
                  Options +ExecCGI -Includes
                  Auf das wollte ich raus.

                  Was mir jetzt noch als letztes einfällt:

                  Aus Deinem anderen Posting:

                  ScriptAlias /cgi-bin/ /usr/local/httpd/htdocs/kunden/web16/html/cgi-bin/
                  und aus diesem:
                  <Location /cgi-bin>

                  Ich weiß, daß es bei Alias einen Unterschied macht, ob man den / am Ende setzt oder nicht.

                  Kann das auch hier das Problem sein?
                  Bei der Location ist keiner am Ende, beim ScriptAlias schon.

                  das glaub ich nicht da bei meinem web die selben einstellung sind und da funktioniert es ... wie ich schon mehrmals gesagt habe ...

                  die einstellungen sind IDENTISCH

  2. Hi,

    welches auch bei mir funktioniert.
    nicht aber in dem web von dem anderen obwohl alles
    richtig gesetzt ist ..
    hat jemand eine idee ?

    nachdem die Webserverkonfiguration unschuldig zu sein
    scheint und das Skript offensichtlich auch vom Perl-
    Interpreter ausgeführt wird, halte ich einen Syntax-
    fehler im Skript für den wahrscheinlichsten Schuldigen.

    Deshalb meine Fragen:
    1. Sind die Dateien in beiden Installationen gleich groß?
    2. Wurde das Skript im ASCII-Modus auf den "anderen
       Server" übertragen?
    Perl mag nämlich keine plattformfremden Zeilenumbrüche:
    http://aktuell.de.selfhtml.org/artikel/cgiperl/inbetriebnahme/#a5

    Viele Grüße
          Michael