PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl auf Apache 1.3.33 --> internal Server Error... mal wieder :(



Der Noob
28.09.05, 19:46
hi leutz..

auch nach längerer suche komm ich auf keinen grünen zweig.

ich kann perl scripte auf der shell ausführen, allerding bekomm ich jedes mal im apachen einen einternal server error.

dateirechte sind richtig gesetzt, nicht im bin mode upgeloadet, apache hat perl_mod geladen, handler is auch auf pl scripte, , datei nicht mit win-editor editiert, cgi is für den virtualhost deffiniert:

<VirtualHost 217.2xx.xxx.xxx>
DocumentRoot /usr/virtualweb/religionsforen.de/html
ScriptAlias /cgi-bin/ /usr/virtualweb/religionsforen.de/html/cgi-bin/

und sollte auch ausgeführt werden:


<Location />
Options +ExecCGI
</Location>

habs auch schon mit
##perl

<Directory /var/www/>
Options +ExecCGI
</Directory>
versucht, ohne erfolg..


<Directory /usr/lib/cgi-bin/>
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ebenfalls drin.

wie gesagt, handler passt:


AddHandler cgi-script .cgi .sh .pl


liegt hier noch irgendo der hund?

# If the perl module is installed, this will be enabled.
<IfModule mod_perl.c>
<IfModule mod_alias.c>
Alias /perl/ /var/www/perl/
</IfModule>
<Location /perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options +ExecCGI
</Location>
</IfModule>

also der server sieht wie folgt aus:
im /user/virtualweb liegen lauter kundenverzeichnisse in denen jeweils ein html ordner mit enthaltenem cgi-bin ordner liegt.

alle cgi-bin ordner werden per virtualhostconfig in der httpd.conf angesprochen...zB:

<VirtualHost 217.20.127.68>
DocumentRoot /usr/virtualweb/religionsforen.de/html
ScriptAlias /cgi-bin/ /usr/virtualweb/religionsforen.de/html/cgi-bin/
ScriptAlias /xphp412x/ /usr/virtualweb/religionsforen.de/lib/
ServerName religionsforen.de
ServerAlias religions-forum.de glaubenskrise.com
ErrorLog /usr/virtualweb/religionsforen.de/var/error.log
User religionsforen
Group webusers
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
Action application/x-httpd-php /xphp412x/php
<Location />
Options +ExecCGI
</Location>

so, nun weiß ich ned weiter..

jedes mal wenn ich http://www.glaubenskrise.com/cgi-bin/test.pl aufrufe bekomm ich nen 500er.. internal server error.

jemand ne idee?

Gruß
Der Noob

cane
28.09.05, 21:40
Was sagen die Logdateien dazu?

mfg
cane

Der Noob
29.09.05, 05:46
die suexec sagt mir:


error: directory is writable by others: (/usr/virtualweb/religionsforen.de/html/cgi-bin)

oder:


info: (target/actual) uid: (religionsforen/religionsforen) gid: (webusers/webusers) cmd: test.pl

komisch.. rechte passen eigentlich für die ordner und die datei.. :confused:

Gruß
Der Noob

marce
29.09.05, 07:30
dann wäre da noch ein error-log und access-log des Apache...

wie sieht denn die Ausgabe des Scriptes aus (die ersten 3 Zeilen reichen...)?

cane
29.09.05, 07:57
error: directory is writable by others: (/usr/virtualweb/religionsforen.de/html/cgi-bin)

Änder das bitte erstmal per "chmod o-w" ab - aus welchesm Grund sollte jedermann ins verzeichnis schreiben können?

Außerdem funktioniert (wie Du sicher weißt) die DNS Auflösung von religionsforen.de nicht.

mfg
cane

Der Noob
29.09.05, 17:05
hi..

das die dns von reli-foren ned geht is normal.. bin grad am domain umziehen.

also die apache-error-log sagt:


[Wed Sep 28 19:32:58 2005] [notice] Accept mutex: sysvsem (Default: sysvsem)
[Thu Sep 29 06:11:08 2005] [notice] SIGUSR1 received. Doing graceful restart
[Thu Sep 29 06:11:08 2005] [notice] Apache/1.3.33 (Debian GNU/Linux) PHP/5.0.5-1.dotdeb.1 mod_perl/1.29 configured -- resuming normal operations
[Thu Sep 29 06:11:08 2005] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache/suexec)
[Thu Sep 29 06:11:08 2005] [notice] Accept mutex: sysvsem (Default: sysvsem)
[Thu Sep 29 06:11:08 2005] [warn] long lost child came home! (pid 28024)

What da ****ing hell bedeutet das letzte [warn]?????

die acces log is leer..

hab mal schreibrechte vom verezichnis genommen, merci für den tip!

Gruß
Der Noob

marce
29.09.05, 20:00
ich bin mir ziemlich sicher, dass diese Logeinträge nicht die sind, die beim Abruf der Seite entstehen...

Der Noob
30.09.05, 05:51
das is aber alles was in der apache-error log steht. wenn ich die seite aufrufe kommt leider kein eintrag hinzu.

in den messages steht auch nix zu dem thema drin. syslog hat auch nix zu bieten..

mehr logdateien hab ich leider grad nicht zu bieten :(

hier mal das script, wobei ich ned glaub, daßes daran liegt, denn in der shell kann ich es normal aufrufen und local auf meinem apache läuft es auch problemlos.


#!/usr/bin/perl -w
use CGI::Carp qw(fatalsToBrowser);
use strict;

print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>Test-Ausgabe</title></head><body>\n";
print "<h1>Hurra, es klappt!</h1>\n";
print "</body></html>\n";

sonst noch jemand eine idee?

Gruß
Der Noob

p.s.: *auf´s hirn klatsch.. der legt die logs ja im entsprechenden verzeichnis bei den seitenusern ab ... oje.. wer lesen kann is klar im vorteil :)

das steht noch im apache log:


[Thu Sep 29 08:27:06 2005] [error] [client 129.132.9.105] Premature end of script headers: /usr/virtualweb/religionsforen.de/html/cgi-bin/test.pl

das sollte doch die lösung sein, oder? aber was ist zu tun :confused:

marce
30.09.05, 08:00
wie hast Du denn das Script auf den Server kopiert? Welches Dateiformat hat es? Evtl. einfach mal per copy-paste in eine neue Datei einfügen, es gibt da machmal Probleme, wenn Windows-Zeichenumbrüche in der Datei vorhanden sind...


(ich gehe mal davon aus, dass das Leerzeichen in der ersten Zeile am Anfang ein Verschreibsler hier ist...)

Der Noob
30.09.05, 08:29
wie ich schon im ersten beitrag geschrieben hab, hab ich keinen windows editor verwendet, darauf bin ich auch schon gekommen..das wars leider ned.

hab das script auch ned hochgeladen sondern per nano direkt auf dem server erstellt. also auch kein prob bit ASCII oder BIN..alles schon durchgekaut :(

Ob das erste leerzeichen im script vorhanden sit, kann ich dir erst wieder heute nachmittag sagen wenn cih daheim bin.. bin mir da grad nicht wirklich sicher.

fakt ist jedoch, daß ich es aus der shell aufrufen kann, daran scheint es also nicht zu liegen. oder is der shell das egal?

also wenn du meine bescheidene meinung hören willst, liegt es an der httpd.conf irgendwo...aber wo?

Gruß
Der Noob

marce
30.09.05, 08:34
was die shell macht liegt wiederum daran, wie Du es aufrufst...

... die Fehlermeldung des Indianers lässt aber darauf schliessen, dass es nicht an der httpd.conf liegt...

Der Noob
30.09.05, 09:08
also über die shell hab ich es einfach mit /usr/bin/perl /pfad/zu/script/script.pl aufgerufen.. so funzt es jedenfalls..

glaubst, es könnte an dem leerzeichen liegen, falls es im script wirklich vorhanden ist?

fas genau besagt diese fehlermeldung denn eigentlich?

merci für die mühe jedenfalls schonmal :)

gruß
der noob

marce
30.09.05, 09:14
so funktioniert es logischerweise, da Du so den Interpreter vorgibst...

Die Fehlermeldung besagt, dass der Header des Scriptes / der Scriptausgaben nicht den Vorgaben entspricht, wie er denn sein sollte...

Der Noob
30.09.05, 10:07
ok, dann wäre das leerzeichen also die lösung des debakels :)

kann das leider erst heute nachmittag ausprobieren wenn ich wieder zuhause bin..

ich würd ja lachen, wenn es daran liegen würde :D :ugly: :eek: :ugly: :D

Gruß
Der Noob

Der Noob
30.09.05, 20:29
also.. das leerzeichen war drin, habs rausgenommen und der fehler ist geblieben.. wäre auch zu einfach gewesen :(


Premature end of scrip
t headers: /usr/virtualweb/religionsforen.de/html/cgi-bin/test.pl

sonst noch eine hilfreiche idee? irgendjemand?

Gruß
Der Noob

Tomek
30.09.05, 22:17
Vielleicht hilft dir das: http://httpd.apache.org/docs/1.3/misc/FAQ-F.html#premature-script-headers

Der Noob
01.10.05, 23:22
so, thema hat sich erledigt.. funzt jetzt.

hab das mod_perl neu compiliert (selbe opts) und schon ging es :)

hab auch nix anders gemacht als beim letzten mal, aber nun geht es endlich *freu*

dank euch allen für die hilfe :)

Gruß
Der Noob