-
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
-
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
-
Wie wärs mal mit Fehlermeldungen die in /var/log/* ausgegeben werden
--> /var/log/apache/error.log
Fehlermeldungen vom Browser sind etwas dürftig
-
danke termito!
Ich guck mal nach und berichte dann was da drinne steht!
Vielen Dank für deinen Hinweis!
greetings
verve
-
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 .
-
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
-
was passiert, wenn du dein Script direkt in der Konsole aufrufst?
-
@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
-
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
-
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
-
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 =-
-
@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
-
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 =-
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen