Hi Cheatah,
danke für Deine rasche Antwort, ist ja klasse hier! :-)
$basedir = "/usr/local/apache/vhosts/domainname.xyz/cgi-bin/blafaseldirthema/";
eine Variablenzuweisung erzeugt noch keinen Fehler. Wo wird dies verwendet,
Eines für das Gästebuch, eines für Feedback, eines für
Forum, eines für Anfragungen, usw., ganz normale
Formulare zum Ausfüllen und Absenden; und all das Zeugs
ging auch wunderbar. Seitdem ich beim neuen Provider
bin, geht das eben nicht mehr. Habe all diese .pl-Teile
auch schon auf anderen Apaches ausprobiert, klappt
einwandfrei, nur hier auf diesem neuen Server nicht.
was wird _dort_ für ein Fehler zurückgegeben?
Nach dem Absenden auf eines der vorhin genannten
Formulare kommt eben immer nur das für den Surfer
sichtbare:
500 Internal Server Error
Internal Server Error
The server encountered an internal error or misconfiguration and was
unable to complete your request.Please contact the server administrator, xxxxxx@XXX.net 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.
Apache/1.3.12 Ben-SSL/1.38 Server at www.XXX.net Port 80
und nur für mich sichtbar per FTP der Zugang
zum error.log und dort steht dann drin:
------------------
[Sat Sep 9 05:03:56 2000] [error] [client XXX.XXX.XXX.XXX] Premature end of script headers: /usr/local/apache/vhosts/meinedomaine.yz/cgi-bin/blafaseldirthema/dateiname.pl
------------------
?? <verzweifel>
Übrigens: Herzlichen Glückwunsch zur Verwendung von perl -w.
??
Hättest Du das Script damit mal testweise an der Kommandozeile ausgeführt, hättest Du bei der Zuweisung von $basedir ohne "my" eine Warnung bekommen. Vielleicht ist diese ja schon Dein Fehler?
Also gut, ich habe das jetzt gerade vorhin - so wie Du
sagst - ohne dem -w gemacht:
------------------
#!/usr/bin/perl
------------------
Und es kommt immer noch der gleiche 500 Error-Mist mit
LOG-File
------------------
[Sat Sep 9 05:18:12 2000] [error] [client XXX.XXX.XXX.XXX] Premature end of script headers: /usr/local/apache/vhosts/meinedomaine.yz/cgi-bin/blafaseldirthema/dateiname.pl
------------------
?? Was nun?
Ob
#!/usr/bin/perl
oder
#!/usr/bin/perl -w
machen beide gleiche Fehlermeldungen 500-ERROR, egal
bei welchem .pl-Script, "Premature end of script headers" :-(
Ansonsten:
use CGI::Carp 'fatalsToBrowser';direkt nach der Shebang-Zeile.
Gut, machen wir das auch wie Du sagst:
------------------
#!/usr/bin/perl
use CGI::Carp 'fatalsToBrowser';
Define Variables
$basedir = "/usr/local/apache/vhosts/meindomaine.xy/blafaseldirthema/";
$baseurl = "http://www.meinedomaine.xy/blafaseldirthema";
$cgi_url = "http://www.....
------------------
Was passiert? Das gleiche immer noch mit:
------------------
500 Internal Server Error
Internal Server Error
The server encountered an internal error or misconfiguration and was
unable to complete your request.Please contact the server administrator,....
------------------
und im LOG file wieder, bzw. immer noch auch hier mit
diesem bloeden "Premature end of script headers". :-(
Vermutlich werden irgendwo anders noch Systemkommandos o.ä. aufgerufen,....
Woher soll ich das wissen? Das ist ein ganz normaler
Apache mit CGI. Bei anderen Apaches auf anderen Hosts
und beim früheren Provider ging das ja alles auch.
Jetzt plötzlich nicht mehr. Das kann doch eigentlich
gar nicht an mir liegen, oder?
oder irgendeine Rechte- oder User-Verteilung stimmt nicht.
Das habe ich auch anfangs gemeint, Provider sagt aber
ganz normal, dass die CGI drauf ist und die
#!/usr/bin/perl
bleibt ganz normal (es gibt auch /usr/local/bin/perl
bei anderen Hosts, wo das Teil nur so funzt)
und die Variablen an den Server anzupassen sind und
das wäre eben nur die Pfadanpassung wie schon gepostet
mit dem neuen Pfad (wie vom Provider angegeben):
------------------
Define Variables
$basedir = "/usr/local/apache/vhosts/meindomaine.xy/blafaseldirthema/";
------------------
Stelle Dir einfach vor, diese Scripte sind alle auch bei
mehreren Providers auf mehreren verschiedenen Hosts
wunderbar gelaufen, nur hier bei diesem "System" gehts nicht,
obwohl CGI drauf ist und das auch bei einer manuellen
URL-Eingabe einer http://www.meinedomaine.xy/blafaseldirthema/dateiname.pl
reagiert, sonst gäbe es ja eine 404-Notfound Errormeldung und
das tut der nicht, sondern macht brav 500 Servererror rein. :-(
Was mache ich denn jetzt? Wie kann ich die "Rechte- oder
Userverteilung" feststellen? CGI ist ja aktiviert.
Vielleicht hilft Dir noch diese Info:
Login per FTP:
/cgi-bin
/httpdocs
/logs
Wie man sieht, ist /cgi-bin praktisch hinter dem Server und
dort befinden sich auch die Unterverzeichnisse und Dateiname.pl
/cgi-bin/blafaseldirthema/dateiname.pl
/httpdocs/blafaselthema/*.*
HTML-Source FORM Action ist auch brav
<FORM ACTION = "http://www.meindomaine.xy/cgi-bin/blafaseldirthema/dateiname.pl" METHOD = "POST">
Hab mal vorhin auf die Schnelle das WWW-Board von Matt Wright
ebenfalls reingeschmissen, auch der macht diesen 500 ERROR
mit "Premature end of script headers". Kann doch nicht sein,
dass ein solch einfaches WWW-Board bei Dir laeuft und bei mir
macht das Teil 500 ERROR "Premature end of script headers"?
Es wäre toll, wenn Du doch bitte etwas dazu sagen könntest, ich
sitze jetzt auch schon wieder fast die ganze Nacht nur an diesem
blöden CGI-Fehler "Premature end of script headers". ;-(
Danke! :-)
Tchau
Gerd mit 18 grauen Haaren mehr...