Perl führt nicht alle scripts aus

efta

Registered User
inzwischen läuft Perl auf dem Server und ist auch in der httpd.conf eingetragen für die entsprechenden verzeichnisse.
Warum führt perl einige scripts aus (wenige) und bei den meisten kommt ein 500 Fehler? (Premature end of script header)
Wenn ich ein super simples Hello World schreib sollte das doch zumindest funzen oder?

(Die scripts laufen in der Shell aber NICHT im Browser!)

GRuß, Alex
 
Hallo Alex,
prüfe doch mal bitte die Berechtigung der Scripte. Wem gehören die Dateien und unter welcher UID wird dein Apache Prozess ausgeführt?

mfG
Thorsten
 
[root@vsXXXXXX html]# pstree -u
init-+-crond
|-httpd-+-httpd
| |-2*[httpd(apache)]
| `-pipelog.pl
|-4*[pipelog.pl]
|-safe_mysqld---mysqld(mysql)---mysqld---mysqld
|-syslogd
`-xinetd-+-sshd---bash---pstree
`-sshd---sshd(web2)---bash


So sieht das aus, kannst du damit was anfangen?
Berechtigung ist natürlich 755, wie kann ichr ausfinden wem die Dateien gehören? wenn ich ls -la mach, dann steht bei den meisten dateien "ftponly" da und bei einigen "root" ....
Danke-Alex
 
Hallo!
Im Falle von Confixx sollte das Script dem entsprechenden webX Gruppe ftponly gehören. Wirf doch mal einen Blick in die Datei /var/log/apache2/error_log (eventuell muss der Pfad angepaßt werden). Dort sollten weitere Informationen stehen warum das Script nicht ausgeführt werden kann.

mfG
Thorsten
 
okay, das habe ich anscheinend rausgefunden dass die group ftponly sein muss, der owner web2. Schade das einige scripts immer noch nicht gehen aber ich arbeite dran :-)

[kann man einstellen - httpd.conf oder so- das alle scripts ausgeführt werden egal welcher group sie angehören?]
 
Hallo!

Diese Änderung kann man sicherlich machen. Allerdings kann ich mir nicht vorstellen, das du das wirklich willst. Es wäre damit auf jeden Fall möglich, die Daten anderer 'Kunden' (Confixx webX) auszulesen bzw. zu ändern.

Was steht denn im error_log wenn ein nicht lauffähiges Script aufgerufen wird?

mfG
Thorsten
 
Hi!
Also in der error log steht "PRemature end of script header", Allerdings läuft es in der shell einwandfrei wenn ich es mit perl index.cgi aufruf!
Weiter denke ich das es mit der einstellung Options ExecCGI -Indexes zusammenhängt.
Wie stelle ich den in der httpd.conf ein das er _überall_ cgi scripts ausführen soll? also welches directory soll ich da angeben (wie, also mit welchem platzhalter)
 
Melde dich in Confixx als webX an. Also dem Benutzer für den es geändert werden soll. Dann auf der ersten Seite ganz unten -> CGI/Perl außerhalb cgi-bin auf Aktiviert.


Nachtrag:
Entscheide dich ob du Confixx nutzen willst oder nicht. Manuelle Änderungen an der httpd.conf im Zusammenspiel mit Confixx können unerwartete Ergebnisse liefern. Du solltest dann genau wissen was wo zu ändern ist.

mfg
Thorsten
 
Last edited by a moderator:
Okay, conifxx nervt mich ziemlich an! Das mit Cgi-Perl ausserhalb usw, hab ich gemacht aber das hat gar nix geändert, also das wurde nicht in der httpd.conf eingetragen
Also hab ichs fuer ein verzeichnis eingetragen
Danke für deine mühe
 
Also, das problem ist, das meine Cgi's nach wie vor nur im home-verzeichnis gehen. Darf ich mal die httpd.conf posten?
Gruß!
 
Back
Top