Page 1 of 1

bekomme cgi nicht zum laufen

Posted: 2004-07-25 14:37
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

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 14:40
by duergner
Wie immer: Logs und Config. Oder ne gute Glaskugel.

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 15:22
by wgot
... oder gleich die ganzen Beiträge zu suexec -V lesen. :roll:

????

Posted: 2004-07-25 15:50
by hax
ich versteh nur bahnhof

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 16:00
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

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 16:09
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"

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 16:10
by sascha
Bitte das Ende von /var/log/apache2/suexec.log nach dem Scriptaufruf posten.

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 16:11
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.

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 16:31
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)

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 16:32
by hax
@duergner:
Ich vermute du konntest alles schon von Geburt an oder?

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 16:47
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.

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 17:03
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.

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 17:17
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).

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 17:24
by hax
Danke. Es funzt

Re: bekomme cgi nicht zum laufen

Posted: 2004-07-25 18:29
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