Anzeige:
Ergebnis 1 bis 13 von 13

Thema: CGI funktioniert nicht (richtig)

  1. #1
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Ort
    Hamburg
    Beiträge
    512

    CGI funktioniert nicht (richtig)

    hallo!

    Ich habe ein Problem:
    Große und komplexe CGI-Skripte scheinen auf meinem Server nicht zu laufen.
    Es kommt immer ein "Internal Server error 500"!
    Kleine Skripte funktionieren jedoch!
    Woran könnte das liegen?
    Ist vielleicht was in der httpd.conf - Datei falsch eingestellt?

    greetings

    verve

  2. #2
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Ort
    Hamburg
    Beiträge
    512
    Hallo

    Warum antwortet denn hier niemand?
    Ich war schon über die Suchfunktion auf CGI, aber da gab es entweder auch keine richtigen Lösungen oder ich hab sie nicht verstanden! Könntet ihr mir bitte damit helfen?
    Ich wäre euch sehr dankbar, auch wenn es für euch Zeitverschwendung ist mir hier zu helfen! Ich würde mich trotzdem über eure Hilfe freuen!

    greetings

    verve

  3. #3
    termito
    Gast
    Wie wärs mal mit Fehlermeldungen die in /var/log/* ausgegeben werden
    --> /var/log/apache/error.log

    Fehlermeldungen vom Browser sind etwas dürftig

  4. #4
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Ort
    Hamburg
    Beiträge
    512
    danke termito!

    Ich guck mal nach und berichte dann was da drinne steht!
    Vielen Dank für deinen Hinweis!

    greetings

    verve

  5. #5
    daddel9
    Gast
    ertmal musst du das verzeichniss cgi-fähig machen :

    ScriptAlias /testcgi-bin/ "/cgi-pfad/"


    <Directory /cgi-pfad>
    AllowOverride None
    Options +ExecCGI
    </Directory>


    in der httpd.conf .... danach dem ganzen script 755 geben .... wenn in der readmy etwas anderes steht natürlich das . falls es nur bei extrem großen scripten ist kann es auch je nach pc an dem seiner rechenpower liegen .

  6. #6
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Ort
    Hamburg
    Beiträge
    512
    Hallo,

    also in der var/log/httpd/error log (das ist doch die richtige oder?)

    steht bei cgi-skripten immer : "premature end of script headers" !!

    Meine httpd.conf sieht so aus (Auszug aus dem für cgi wesentlichen Teil):


    # ScriptAlias: This controls which directories contain server scripts.
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the realname directory are treated as applications and
    # run by the server when requested rather than as documents sent to the client.
    # The same rules about trailing "/" apply to ScriptAlias directives as to
    # Alias.
    #
    ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"

    <IfModule mod_perl.c>
    # Provide two aliases to the same cgi-bin directory,
    # to see the effects of the 2 different mod_perl modes.
    # for Apache::Registry Mode
    ScriptAlias /perl/ "/usr/local/httpd/cgi-bin/"
    # for Apache::Perlrun Mode
    ScriptAlias /cgi-perl/ "/usr/local/httpd/cgi-bin/"
    </IfModule>
    #
    # "/usr/local/httpd/cgi-bin" should be changed to whatever your ScriptAliased
    # CGI directory exists, if you have that configured.
    #
    #<Directory "/usr/local/httpd/cgi-bin">
    # AllowOverride None
    # Options None
    # Order allow,deny
    # Allow from all
    #</Directory>

    </IfModule>
    # End of aliases.


    #
    # set /cgi-bin for CGI execution
    #
    <Location /cgi-bin>
    AllowOverride None
    Options +ExecCGI -Includes
    SetHandler cgi-script
    </Location>

    #
    # If mod_perl is activated, load configuration information
    #
    <IfModule mod_perl.c>
    Perlrequire /usr/include/apache/modules/perl/startup.perl
    PerlModule Apache::Registry

    #
    # set Apache::Registry Mode for /perl Alias
    #
    <Location /perl>
    AddHandler perl-script .pl
    PerlHandler Apache::Registry
    Options ExecCGI
    PerlSendHeader On
    </Location>

    #
    # set Apache::PerlRun Mode for /cgi-perl Alias
    #
    <Location /cgi-perl>
    SetHandler perl-script
    PerlHandler Apache::PerlRun
    Options ExecCGI
    PerlSendHeader On
    </Location>

    </IfModule>

    Sieht da jemand ein Fehler drin?
    Könnt ihr vielleicht sagen, was der Fehler "premature end of script headers" ist?
    Danke schon mal im vorraus!

    greetings

    verve

  7. #7
    termito
    Gast
    was passiert, wenn du dein Script direkt in der Konsole aufrufst?

  8. #8
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Ort
    Hamburg
    Beiträge
    512
    @termito

    Ich hab leider keinen cgi testscript.
    Ich hab nur ein Server, auf den die User sachen hochladen u.a. auch CGI-Skripte!
    Und die sagen mir dass sie immer ein Fehler bekommen!
    Entschuldigung für meine Dummheit (bin noch ganz neu) aber wie erstelle ich ein cgi-Testskript?

    greetings

    verve

  9. #9
    termito
    Gast
    ich mein nur, kannst du die Scripte deiner User auch direkt von der Konsole aus starten?
    so z.B.
    #/usr/lib/cgi-bin/sysinfo.cgi

    Wo liegen überhaupt die Scripte deiner User,... in den homes ?
    Wenn ja, dann musst du da cgi in der httpd.conf aktivieren
    z.B. unter public_html

    Wichtig ist natürlich auch, dass du mit chmod die Scripte ausführbar machst.

    Die Ursache für dein Problem ist vielfältig, am besten benutze mal die Suchfunktion und lies dir das ein wenig durch, dann wirst du bestimmt eine Antwort zu deinem Problem finden.
    click here

  10. #10
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Ort
    Hamburg
    Beiträge
    512
    danke termito!
    Ich versuch es mal!
    Danke für deine Hilfe, aber ich schätze jetzt muss ich mich da wohl selbst durcharbeiten!
    (Man-Pages sind das schlimmste, was es gibt)!!

    greetings

    verve

  11. #11
    Happy Hippo
    Registriert seit
    Aug 1999
    Ort
    904xx Nermberch
    Beiträge
    942
    Hi,

    erste mal als Frage: Über was reden wir, wenn wir über CGI reden? Über PERL Skripte, Shell Skripte, Ruby, Phyton, PHP, ......

    Wenn es PERL Skripte sind:

    Du sagst Deine User laden rüber .... hhmmmm .... Haben die vielleicht Windows im Einsatz?? Weil der PERL Interpreter hat sich etwas mit den Zeilenende zeichen, d.h. er möchte ein schönes einfaches LF, kein CR, kein CR/LF und auch kein LF/CR. -> kleiner Fehler große Wirkung.

    -= Pingu =-

  12. #12
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Ort
    Hamburg
    Beiträge
    512
    @Pingu

    es sind vornehm Perl -und Php-Skripte dabei!
    Und ja, die Mehrzahl der User (fast alle) hat wohl Windows!
    Was müsste ich denn da umstellen um den Pfad Interpreter-Pfad korrekt zu setzen?

    greetings

    verve

  13. #13
    Happy Hippo
    Registriert seit
    Aug 1999
    Ort
    904xx Nermberch
    Beiträge
    942
    Es müssen alle CR (Carriage Return, #13, Wagenrücklauf) aus den PERL Skripten raus.
    Es dürfen nur LF (Line Feed, #10, Seitenvorschub) als Zeilenendekennung in den PERL Skripten verwendet werden.
    Aber das hatte ich ja alles schon geschrieben.

    Dafür gibt's Tools wie die gerade heissen weiß ich nicht, da ich alle meine Editoren (GoLive, Apple Developer Studio) eingestellt habe nur LF als Zeilenende zu schreiben und emacs, pico, nano, vi schreiben ja sowieso nur LF als Zeilenende. emacs kann auch konvertieren, ist aber etwas umständlich (Datei öffnen, Mule auf z.B. ISO-8859-1-unix umstellen und zurück speichern).

    -= Pingu =-

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •