CGI Scripte laufen nicht

So, ich weiß ja nicht, ob ich hier jetzt richtig mitgelesen habe... aber den Link, wie man innerhalb von sagen wir mal 5-10mins suexec neu kompiliert habe ich auf Seite 1 gepostet.
Postet doch bitte nochmals eure logs. Speziell nat. suexec.log bzw. suexec_log oder so.
 
@ Soulfly
Danke, mir haben sie gesagt ich soll das ursprüngliche image wieder aufspielen... das wird vermutlich nichts bringen wie man bei dir gemerkt hat. Jetzt wäre noch interessant, was Strato beim kompilieren deiner suexec anders gemacht haben? Hast du auch einen dieser Power Server mit Visas - eigentlich sollte dann deine suexec auch bei mir laufen?

@ server4downs
Deine Anleitung habe ich gelesen, der AP_USERDIR_SUFFIX (="/home") meiner suexec passt aber - ich weiss ja atm nicht was noch geändert gehört.

Hmmm, mein suexec.log will mir einfach nicht zeigen was schief geht wenn ich mein cgi aufrufe, da steht noch immer die Meldung von den Tests der Strato Jungs:

Code:
[2006-02-02 19:47:29]: command not in docroot (/home/n/niedermayr.cc/public_html/cgi-bin/servertest.cgi)

Die Meldung ist ja eindeutig, aber ich glaube das war vor dem zurückspielen der suexec_visas ...
 
Irgendwas MUSS ja in den logs stehen.Vielleicht hast du ja die falschen erwischt.
 
also laut der aktiven suexec liegt das log-file hier:
AP_LOG_EXEC="/var/log/httpd/suexec.log"

der letzte eintrag in diesem file:
[2006-02-07 10:09:12]: too few arguments
 
Ich kann kaum glauben, dass du erst eine Datei aufgerufen hast und dann nur einen Eintrag dazu in den Logs hast.
Lass dir doch nicht immer alles aus der Nase ziehen ;)
 
Ich würde dir ja gerne mehr Informationen, also ein logfile, geben, nur entweder finde ich es nicht oder aber es wird gar nichts mitprotokoliert.
 
miccom said:
Ich würde dir ja gerne mehr Informationen, also ein logfile, geben, nur entweder finde ich es nicht oder aber es wird gar nichts mitprotokoliert.
Was sagt denn der Apache ErrorLog?
Gibts hierzu was Interessantes?
 
der error_log gibt mir fleissig auskunft:
[Wed Mar 15 20:16:30 2006] [error] [client 80.171.79.142] File does not exist: /home/n/niedermayr.cc/public_html/gibtsned

aber wenn ich ein cgi-aufrufe sagt es nichts, ergo kein fehler - funktionieren tut es halt nur nicht.
 
@ miccom
habe mehrere Server bei Strato darunter auch einen Power Server mit Visas

gg ja ja Strato .. glaub mir ich hatte die solange genervt bis sich mal einer erbarmt hat. Von alleine wären die wohl nie auf die Idee gekommen.

Habe dir beide Suexec Dateien wie Sie auf meinem Server liegen mal bei Rapidshare raufgeschoben

http://rapidshare.de/files/15590633/SuexecDatei.zip.html

Hoffe es funzt :D

Soulfly
 
Last edited by a moderator:
mmh.. da auf meinem Power Server momentan eh nichts wichtiges lief und ich langeweile hatte fg habe ich mir gedacht probiere ich einfach nochmal das Image von Strato aus. Habe sofort danach Updates gezogen und da CGI mal danach mal wieder nicht lief den befehl cp -p /usr/sbin/suexec2.visas /usr/sbin/suexec2 ausgeführt und nun geht es wieder... scheinbar hat Strato doch etwas an den Datein verändert da es beim letzten mal ja nicht funzte und sogar der Strato Mitarbeiter den ich damals am Telefon hatte verzweifelte ...
 
Ich habe das selbe Problem, jedoch bei meinem Strato vServer (Suse 9.3). ich bekomme immer den 500er Error. Meine Scripte haben jedoch alle die Rechte 755.

Suexec.log sagt das:

[2007-02-15 16:58:07]: uid: (10001/web001) gid: (10001/10001) cmd: hello.cgi
[2007-02-15 16:58:08]: uid: (10001/web001) gid: (10001/10001) cmd: hello.cgi
[2007-02-15 16:58:09]: uid: (10001/web001) gid: (10001/10001) cmd: hello.cgi
[2007-02-15 16:58:28]: uid: (10001/web001) gid: (10001/10001) cmd: hello.cgi
[2007-02-15 16:58:40]: uid: (10001/web001) gid: (10001/10001) cmd: test.cgi
[2007-02-15 16:58:42]: uid: (10001/web001) gid: (10001/10001) cmd: test.cgi
[2007-02-15 16:58:43]: uid: (10001/web001) gid: (10001/10001) cmd: test.cgi
[2007-02-15 16:58:44]: uid: (10001/web001) gid: (10001/10001) cmd: test.cgi
[2007-02-15 16:58:52]: uid: (10001/web001) gid: (10001/10001) cmd: test.cgi
[2007-02-15 16:58:53]: uid: (10001/web001) gid: (10001/10001) cmd: test.cgi
[2007-02-15 16:59:04]: uid: (10001/web001) gid: (10001/10001) cmd: hello.cgi
[2007-02-15 16:59:06]: uid: (10001/web001) gid: (10001/10001) cmd: hello.cgi
[2007-02-15 17:01:03]: uid: (10001/web001) gid: (10001/10001) cmd: hallo.cgi

Das komische ist, das von Plesk selbst generierte Script zu testzwecken, geht problemlos. Auf Anfrage nach dem CGI Problem bei Strato, hat man mir ein kleines Script gegeben, das aber nicht geht.

Das Plesk Script sieht so aus:

Code:
#!/usr/bin/perl

print <<HTML;
Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html">
<link rel="stylesheet" type="text/css" href="../../css/style.css">
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0">
<tr class="subhead" align="Left"><th>Name</th><th>Value</th></tr>
HTML

my $class;

foreach (sort keys %ENV) {
	next unless /^HTTP_|^REQUEST_/;
	$class = ($class ne 'normal')? 'normal': 'alt';
	print <<HTML;
<tr class="$class"><td valign="top">$_</td><td>$ENV{$_}</td></tr>
HTML
}

print <<HTML;
</table>
</body>
</html>
HTML

Das Script von Strato so:

Code:
#!/usr/bin/perl
# Beispiel: Hello World

use CGI qw/:standard/;
use CGI::Carp qw/fatalsToBrowser/;

print "Content-type: text/html\n\n";
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
print "<html>\n";
print "<head><title>Hello</title></head>\n";
print "<body bgcolor=\"blue\">\n";
print "<hr><center>\n";
print "<h1>Hello, world!</h1>\n";
print "</center><hr>\n";
print "</body></html>\n";

Ich hoffe, ihr könnt mir weiterhelfen, brauche CGIs dringend! Danke!

Gruß

Charmed
 
Suexec.log sagt das:
Am suexec liegts es also schon mal nicht. Was steht im error_log?
Achte mal auf die Shebang-Zeile (erst Zeile). Dort darf kein WinDOS-Artiger Zeilenumbruch sein (CR LF) sondern Unix-Like nur CR. Das Programm dos2unix hilft meistens beim Umwandeln, oder Du setzt (sogar besser) noch ein ' -w' hinter Perl.

huschi.
 
Also hier error_log von den besagten Stnden, wo ich das heute ausprobiert habe:

[Thu Feb 15 13:43:23 2007] [error] [client 66.249.66.140] File does not exist: /srv/www/vhosts/world-charmed.eu/httpdocs/board/robots.txt
[Thu Feb 15 14:59:40 2007] [error] [client 89.50.38.228] request failed: error reading the headers, referer: http://www.world-charmed.eu/boar$
[Thu Feb 15 15:22:43 2007] [error] [client 85.216.119.49] Invalid URI in request 3Bq%3D0.1#24000#371#1228#0#5#0; FRQSTR=19525821x345236:1:144$
[Thu Feb 15 15:22:43 2007] [error] [client 85.216.119.49] Invalid URI in request 3Bq%3D0.1#24000#371#1228#0#5#0; FRQSTR=19525821x345236:1:144$
[Thu Feb 15 15:23:01 2007] [error] [client 85.216.119.49] Invalid URI in request 6:1:1440|19525821|19525821|19525821|19525821; WIDYMD=#30534:$
[Thu Feb 15 15:23:01 2007] [error] [client 85.216.119.49] Invalid URI in request 3Bq%3D0.1#24000#371#1228#0#5#0; FRQSTR=19525821x345236:1:144$
[Thu Feb 15 15:25:31 2007] [error] [client 85.216.119.49] Invalid URI in request 3Bq%3D0.1#24000#371#1228#0#5#0; FRQSTR=19525821x345236:1:144$
[Thu Feb 15 15:37:41 2007] [error] [client 194.175.102.20] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw0$
[Thu Feb 15 17:57:51 2007] [error] [client 80.24.201.113] File does not exist: /srv/www/vhosts/world-charmed.eu/httpdocs/board/cacti, referer$
[Thu Feb 15 17:57:51 2007] [error] [client 80.24.201.113] File does not exist: /srv/www/vhosts/world-charmed.eu/httpdocs/board/portal, refere$
[Thu Feb 15 17:57:57 2007] [error] [client 80.24.201.113] File does not exist: /srv/www/vhosts/world-charmed.eu/httpdocs/board/cacti, referer$
[Thu Feb 15 17:57:59 2007] [error] [client 80.24.201.113] File does not exist: /srv/www/vhosts/world-charmed.eu/httpdocs/board/portal, refere$

*lol* Ich hab mal das -w dahinter gemacht und nun geht das tatsächlich :D
Was hat es denn mit dem -w auf sich? :D

Danke und Gruß

Charmed
 
Was hat es denn mit dem -w auf sich? :D
Nichts besonderes. Es sagt Perl lediglich, daß es Warnungen ausgeben soll. Bei fremden Script's die ohne "use strict;" sind, ist dies sogar eine schlechte Einstellung. :)
Der Sinn hier war einfach den Zeilenumbruch vom Interpreter abzutrennen. Der DOS-like Umbruch wird nämlich als Zeichen an den Interpreter dran gehängt und dann kann er diesen nicht finden.
Schicke Deine Scripte durch dos2unix oder verwende beim Upload den ASCII-Modus. Dann werden diese automatisch umgewandelt.

huschi.
 
Back
Top