PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : .cgi und .pl Dateien wollen nicht??



lolli
19-07-2001, 12:12
hast du denn auch in die erste zeile
#!/usr/bin/perl

eingetragen? wenn ja, schau die doch mal mit
tail /var/log/httpd/error_log
die letzten fehlermeldungen an. da findest du bestimmt einen hinweis auf den fehler.
möglicherweise hast du einen fehler im skript selbst. prüfen kannst du das mit
perl -cTw /PFAD/skript.pl

olli

Alexander Hinrichs
19-07-2001, 12:41
Danke lolli,

die Logfiles des Apaches sagen mir nicht viel. Ich habe den Befehl:

perl -cTw /PFAD/skript.pl

ausgeführt und habe eine riesige Liste mit anscheinend Problemen zurückbekommen. Das liegt wohl alles an einer Datei, die über 'require' eingefügt werden soll. (dort sind allgemeine Settings gespeichert.) Diese Datei existiert auch aber das Script übernimmt anscheinend nicht die nötigen Variablen.

die Ausgabe von perl -cTw /PFAD/skript.pl bringt mir folgendes ergebnis:

<BLOCKQUOTE><font size="1" face="Arial,Helvetica,Geneva">Zitat:</font><HR> [Thu Jul 19 13:25:52 2001] script.cgi: Name "main::username" used only once: possible typo at /var/www/htdocs/cgi-bin/forum/script.cgi line 71. [/quote]

usw. ...

Entweder wird die Datei nicht richtig eingebunden oder der Interpreter versteht die Variablen nicht.

Kennt jemand das Problem? Ich hab leider noch nie etwas mit perl oder cgi gemacht...

Gruß Alexander

lolli
19-07-2001, 13:26
die angabe

[Thu Jul 19 13:25:52 2001] script.cgi: Name "main::username" used only once: possible typo at /var/www/htdocs/cgi-bin/forum/script.cgi line 71.

ist nicht weiter schlimm, da sie nur aussagt, dass die variable 'username' nur einmal verwendet wird.
was steht denn nun in der error_log. poste die letzten zeilen doch mal.

hast du daran gedacht, das die erste ausgabe des skriptes
print "Content-type: text/html\n\n";
sein muss. apache (o.ä.) muss schliesslich wissen, was er mit den daten, die da vom skript kommen, anfangen soll.
die headerzeile MUSS unbedingt die erste ausgabe sein, selbst vorher ausgegebene leerzeichen können dann einen server-error verursachen.

oliver

Alexander Hinrichs
19-07-2001, 13:44
Ja,

Content-type: text/html\n\n

ist die erste Ausgabe. Ich glaube ich bin sogar schon weiter. Ich habe das script einfach mal so ausgeführt mit Perl von der Console aus. Daraufhin bekam ich die Fehlermeldung, dass das Verzeichnis in dem ich all meine Konfigurationsdateien habe nicht in der Variable (oder dem array) @INC ist.

Wie kann ich denn ein Verzeichnis meiner Wahl in das Array einfügen?

Alexander

PS:

Hier die Zeilen aus meiner Apache LogFile:

[Thu Jul 19 11:32:41 2001] [error] (2)No such file or directory: exec of /var/www/homepage/cgi-bin/yabb/script.cgi failed

[Thu Jul 19 11:32:41 2001] [error] [client 192.168.10.23] Premature end of script headers: /var/www/homepage/cgi-bin/yabb/script.cgi

Kann man die verwerten?

lolli
19-07-2001, 18:09
#!/usr/bin/perl -I/pfad/zu/deinem/verzeichnis/
in der ersten zeile sollte eigentlich gehen.
bin mir aber nicht ganz sicher...

ansonsten eifach bei der einbindung von weiteren dateien einfach den pfad mit angeben
require "/pfad/zu/weiteren/dateien/lib.pl";

zu den fehlern:
[Thu Jul 19 11:32:41 2001] [error] (2)No
such file or directory: exec of /var/www/homepage/cgi-bin/yabb/script.cgi failed
...benötigt die datei script.cgi, kann sie aber nicht finden

[Thu Jul 19 11:32:41 2001] [error] [client 192.168.10.23] Premature end of script headers: /var/www/homepage/cgi-bin/yabb/script.cgi
...da vor dem header bereits eine fehlermeldung ausgegeben wurde, weiss der apache nicht, was er tun soll..



oliver

[ 19. Juli 2001: Beitrag editiert von: lolli ]

Alexander Hinrichs
19-07-2001, 23:36
Ich bin langsam am verzweifeln. Ich habe ein Webboard und will das auf meinem Server zum laufen bringen. Dateiendungen sind .cgi und .pl soweit so gut. Das test-cgi vom Apache Server führt er auch richtig aus. Wenn ich allerdings Das Board starten will bekomme ich den Fehler:

<BLOCKQUOTE><font size="1" face="Arial,Helvetica,Geneva">Zitat:</font><HR>Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log. [/quote]

Die Rechte für die Dateien habe ich auch alle richtig vergeben. Das Komplette Board befindet sich in einem unterverzeichnis von cgi-bin. Ich habe keine Ahnung was ich noch tun kann. Vor allem weil das test-cgi vom Apache ja ohne fehler läuft. Ich habe auch den Pfad zu Perl in den Scripten überprüft. der stimmt. Worauf muss ich denn noch achten?

Wäre echt super wenn mir da jemand helfen kann.

Gruß Alexander

Alexander Hinrichs
20-07-2001, 08:45
Hallo Oliver,

ich habe nun die dateien mit require in das script eingebunden. wenn ich in der console das programm ausführe funktioniert das auch aber wenn ich über das internet auf diese seite zugreifen will bekomme ich immernoch die meldung:

<BLOCKQUOTE><font size="1" face="Arial,Helvetica,Geneva">Zitat:</font><HR> Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
[/quote]

Ich habe daraufhin nochmal in der console folgendes eingegeben: 'perl script.cgi >> datei.html' In dem cgi Verzeichnis lässt sich datei.html nicht öffnen. Erst wenn ich diese in das Wurzelverzeichnis des Servers Kopiere funktioniert es. Ich denke das liegt jetzt an der Apache Konfiguration.

Muss ich da extra noch angeben, dass er die Dateien aus dem CGI-BIN (und den Unterverzeichnissen) ausgibt?

Alexander

lolli
20-07-2001, 09:14
also wenn's in der console läuft, sollte es auch übers /cgi-bin/ laufen.

was steht im error_log?

wenn du willst, schaue ich mir die datei mal an. einfach mal zuschicken (oliver@is-dienste.de)

olli