bekomme cgi nicht zum laufen

Apache, Lighttpd, nginx, Cherokee
Post Reply
hax
Posts: 6
Joined: 2004-07-25 14:31
 

bekomme cgi nicht zum laufen

Post by hax »

ich habe mir einen server von 1und1 geholt. nach umzug meiner domains muß ich leider feststellen, daß folgendes skript nicht mehr läuft.

#!/usr/bin/perl
#
# mailsend.pl
# version 961110
# copyright 1996 by bo larsson
# all rights reserved
#
# bugs or feedback to bliss@seagull.net
# for information on how to use, visit http://www.seagull.net/bliss/

$mailer = "/usr/sbin/sendmail -t";
$valist = "";

# Get the input and strip off all unwanted characters
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
$temp = $buffer;
$temp =~ s/+/ /g;
$temp =~ s/%([0-9|A-F]{2})/pack(C,hex($1))/eg;

# Store the matching name and value pairs
foreach (split(/&/,$temp))
{
($NAM, $VAL) = split(/=/, $_);
$DATA{$NAM} = $VAL;
$valist .= "$NAM:$VALn";
}

# Grab necessary variables
$sendto = $DATA{'sendto'};
$response = $DATA{'response'};
$anfragegrund = $DATA{'anfragegrund'};
$Vorname = $DATA{'Vorname'};
$Nachname = $DATA{'Nachname'};
$Strasse = $DATA{'Strasse'};
$PLZ = $DATA{'PLZ'};
$Fahrzeughersteller = $DATA{'Fahrzeughersteller'};
$Fahrzeugtyp = $DATA{'fahrzeugtyp'};
$Modell = $DATA{'modell'};
$Motor = $DATA{'motor'};
$Hubraum = $DATA{'Hubraum'};
$Serienleistung = $DATA{'Serienleistung'};
$Erstzulassung = $DATA{'Erstzulassung'};
$Telefon = $DATA{'Telefon'};
$Fax = $DATA{'Fax'};
$email = $DATA{'email'};
$Offene_Fragen = $DATA{'Offene_Fragen'};


# Send mail to $recipient
open (MAIL, "|$mailer") || die "Can't open $mailprog!n";
print MAIL "Subject: $anfragegrundn";
print MAIL "From: $email ($Nachname)n";
print MAIL "To: $sendton";
print MAIL "n";
print MAIL "$valist";
print MAIL "n";
print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}n";
close (MAIL);

# Print the response
print "Content-type:text/htmlnn";
print "<HTML><BODY><TITLE>Thank you</TITLE>";
print "<FONT SIZE=+2>$response</FONT>";
print "</BODY></HTML>";

Der Webserver gibt folgende Fehlermeldung aus:

Fehlermeldung:
Premature end of script headers: mailsend.pl

Da ich in der Linux-Welt neuling bin, wäre ich euch dankbar wenn ihr mir helfen könntet
duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA
 

Re: bekomme cgi nicht zum laufen

Post by duergner »

Wie immer: Logs und Config. Oder ne gute Glaskugel.
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: bekomme cgi nicht zum laufen

Post by wgot »

... oder gleich die ganzen Beiträge zu suexec -V lesen. :roll:
hax
Posts: 6
Joined: 2004-07-25 14:31
 

????

Post by hax »

ich versteh nur bahnhof
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: bekomme cgi nicht zum laufen

Post by wgot »

Hallo,

Script nochmal frisch aufrufen (damit in den Logfiles frische Einträge ganz unten entstehen) und eben diese Logeinträge in's Forum posten.

Außerdem suexec -V bzw. suexec2 -V aufrufen und die Ergebnisse ansehen. Passen sie nicht zu Deinem System, lies die entsprechenden Beiträge wie man das behebt.

Gruß, Wolfgang
hax
Posts: 6
Joined: 2004-07-25 14:31
 

Re: bekomme cgi nicht zum laufen

Post by hax »

Ok, hab ich gemacht und wie sehe ich nun ob das zu meinem System passt?

-D AP_DOC_ROOT="/home/htdocs"
-D AP_GID_MIN=96
-D AP_HTTPD_USER="wwwrun"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=96
-D AP_USERDIR_SUFFIX="public_html"
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: bekomme cgi nicht zum laufen

Post by sascha »

Bitte das Ende von /var/log/apache2/suexec.log nach dem Scriptaufruf posten.
duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA
 

Re: bekomme cgi nicht zum laufen

Post by duergner »

Indem du einfach schaust ob die Werte zu deinem System passen. Wenn du das nicht kannst, dann schick SOFORT das Kündigungsfax weg und hol dir einen Managed-Server oder am besten nur Webspace.
hax
Posts: 6
Joined: 2004-07-25 14:31
 

Re: bekomme cgi nicht zum laufen

Post by hax »

[2004-07-25 16:05:13]: uid: (640/web3) gid: (102/102) cmd: mailsend.pl
[2004-07-25 16:05:13]: file is writable by others: (/home/htdocs/web3/html/cgi-bin/mailsend.pl)
hax
Posts: 6
Joined: 2004-07-25 14:31
 

Re: bekomme cgi nicht zum laufen

Post by hax »

@duergner:
Ich vermute du konntest alles schon von Geburt an oder?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: bekomme cgi nicht zum laufen

Post by captaincrunch »

Was um alles in der Welt ist an file is writable by others denn bitteschön soooo unverständlich? Das bekommt sogar die mieseste Ã?bersetungssoftware noch hin.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA
 

Re: bekomme cgi nicht zum laufen

Post by duergner »

hax wrote:Ich vermute du konntest alles schon von Geburt an oder?
Nein aber ich lernen nicht an einem System das mit 100MBit an das Internet angebunden ist.

Und in Bezug auf dein Problem hat dir ja CC eigentlich schon den entsprechenden Hinweis gegeben. Wenn du den nicht verstehst, naja dann gute Nacht.
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: bekomme cgi nicht zum laufen

Post by sascha »

hax wrote:[2004-07-25 16:05:13]: uid: (640/web3) gid: (102/102) cmd: mailsend.pl
[2004-07-25 16:05:13]: file is writable by others: (/home/htdocs/web3/html/cgi-bin/mailsend.pl)
Bei Scripten und Verzeichnissen maximal die Rechte "755" setzen. Du hast sehr wahrscheinlich "777" gesetzt, was für suexec zu unsicher ist. Falls du die Zahlen nicht verstehst solltest du dich mal mit Unix Dateirechten beschäftigen (google, man chmod).
hax
Posts: 6
Joined: 2004-07-25 14:31
 

Re: bekomme cgi nicht zum laufen

Post by hax »

Danke. Es funzt
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: bekomme cgi nicht zum laufen

Post by wgot »

Hallo,

freut mich daß es funktioniert - und jetzt ist es höchste Zeit, das Script wieder zu löschen.

Code: Select all

foreach (split(/&/,$temp))
{
	($NAM, $VAL) = split(/=/, $_);
	$DATA{$NAM} = $VAL;
	$valist .= "$NAM:$VALn";
}
...
$sendto = $DATA{'sendto'};
...
print MAIL "To: $sendton";
Sonst wirst Du irgendwann in den nächsten Wochen erfahren, daß es noch viel besser funzt als Du denkst.

Falls die Zieladresse immer die gleiche ist, codiere sie fest in's Script, sonst nix wie runter damit.

Gruß, Wolfgang
Post Reply