Perl und aufruf von Scripten
Perl und aufruf von Scripten
Hallo ich kleiner blonder dummer habe da so ein problem ....
ich habe ein script im verzeichnis cgi-bin mit den rechten 755 und wenn ich das script aufrufe mit dem IE 6 dann kommt Datei Speichern unter... aber das is ja nu mal nicht sinn der sache ...
hier noch die ersten zeilen des scripts ...
#!/usr/bin/perl
##
###########################
## Server Info CGI v1.08 ##
###########################
##
## ######################################
## ## Server Info CGI v1.08 © 2000 ##
## ## http://www.widexl.com ##
## ## Made by Henk Boonstra ##
## ######################################
##
## This script gives information about your (web)server.
## Software, Modules, libraries, env, network...
##
## Install:
## Change the path to perl (The first line in this script).
## Upload the script in ASCII mode to your cgi-bin directory.
## chmod script to 755.
## Open the script in a browser.
##
##############################
##############################
use strict;
use warnings FATAL => 'all';
no warnings 'redefine'; # to be remove in production
use Carp;
our %info = ();
my $output = undef;
my $ver = 'v1.8';
find_prog();
print "Content-type: text/htmlnn";
my $header = qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Server Info script $ver - http://www.widexl.com</title>
<meta name="robots" content="noindex,nofollow">
<style type="text/css"><!--
BODY {
background-color : #FFFFFF;
font-family: verdana, arial, helvetica, sans-serif;
color : #484848;
font-size : 12px;
ich habe ein script im verzeichnis cgi-bin mit den rechten 755 und wenn ich das script aufrufe mit dem IE 6 dann kommt Datei Speichern unter... aber das is ja nu mal nicht sinn der sache ...
hier noch die ersten zeilen des scripts ...
#!/usr/bin/perl
##
###########################
## Server Info CGI v1.08 ##
###########################
##
## ######################################
## ## Server Info CGI v1.08 © 2000 ##
## ## http://www.widexl.com ##
## ## Made by Henk Boonstra ##
## ######################################
##
## This script gives information about your (web)server.
## Software, Modules, libraries, env, network...
##
## Install:
## Change the path to perl (The first line in this script).
## Upload the script in ASCII mode to your cgi-bin directory.
## chmod script to 755.
## Open the script in a browser.
##
##############################
##############################
use strict;
use warnings FATAL => 'all';
no warnings 'redefine'; # to be remove in production
use Carp;
our %info = ();
my $output = undef;
my $ver = 'v1.8';
find_prog();
print "Content-type: text/htmlnn";
my $header = qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Server Info script $ver - http://www.widexl.com</title>
<meta name="robots" content="noindex,nofollow">
<style type="text/css"><!--
BODY {
background-color : #FFFFFF;
font-family: verdana, arial, helvetica, sans-serif;
color : #484848;
font-size : 12px;
Re: Perl und aufruf von Scripten
Hallo,
mit dem Script selber hat das nix zu tun.
Hast Du es als scriptname.pl auf den Server gelegt? Probier mal scriptname.cgi.
Wenn cgi geht aber pl nicht, in der httpd.conf in der Zeile
das fehlende .pl nachtragen und Apache neu starten.
Gruß, Wolfgang
mit dem Script selber hat das nix zu tun.
Hast Du es als scriptname.pl auf den Server gelegt? Probier mal scriptname.cgi.
Wenn cgi geht aber pl nicht, in der httpd.conf in der Zeile
Code: Select all
AddHandler cgi-script .cgi .pl
Gruß, Wolfgang
Re: Perl und aufruf von Scripten
also ich habe mal in der httpd.conf .pl hinter cgi dazugeschrieben und wenn ich jetzt das script aufrufe http//domain.de/cgi-bin/scriptname.pl oder .cgi bekomme ich im IE folgende fehler meldung HTTP 500 - Interner Serverfehler
Internet Explorer
was zum teufel läuft den da bei mir falsch ?
Internet Explorer
was zum teufel läuft den da bei mir falsch ?
-
darkspirit
- Posts: 553
- Joined: 2002-10-05 16:39
- Location: D'dorf
- Contact:
Re: Perl und aufruf von Scripten
Ein Blick in die error_log hilft dir weiter..
Re: Perl und aufruf von Scripten
ich habe mal noch ein kleines test script in das cgi-bin verzeichnis kopiert
aber auch hier bekomme ich die fehlermeldung HTTP 500 - Interner Serverfehler.
ist es möglich das perl bei mir nicht so richtig läuft ich habe auch keinen blassen schimmer wie ich das jetzt am besten teste ?
#!/usr/local/bin/perl
#===============================
# Testing CGI script installation
# Copyright 1999, Free Perl Code
# Created 08/15/99
#===============================
# This script is designed to test
# CGI script installation
#===============================
print "Content-type: text/plain", "nn";
print "Hello Internet World!";
aber auch hier bekomme ich die fehlermeldung HTTP 500 - Interner Serverfehler.
ist es möglich das perl bei mir nicht so richtig läuft ich habe auch keinen blassen schimmer wie ich das jetzt am besten teste ?
#!/usr/local/bin/perl
#===============================
# Testing CGI script installation
# Copyright 1999, Free Perl Code
# Created 08/15/99
#===============================
# This script is designed to test
# CGI script installation
#===============================
print "Content-type: text/plain", "nn";
print "Hello Internet World!";
Re: Perl und aufruf von Scripten
Hallo,
wirf mal einen Blick in die suexec.log bzw suexec_log.
755 gesetzt, ascii hochgeladen, /usr/local/bin/perl existiert?
Gruß, Wolfgang
wirf mal einen Blick in die suexec.log bzw suexec_log.
755 gesetzt, ascii hochgeladen, /usr/local/bin/perl existiert?
Gruß, Wolfgang
Re: Perl und aufruf von Scripten
also wenn ich ehrlich sein der blick in die erro_log macht mich nicht wirklich schlauer da ich permature end of script nichts anfangen kann !?
Ob da wohl einer einen denkanstoß für mich hat ?
[client xxxxxxxx] Premature end of script headers: /home/k/Xxxxxxx.de/public_html/cgi-bin/env.pl
[Thu Mar 4 22:51:12 2004] [error] [client XXXXXXX] Premature end of script headers: /home/k/XXXXXXX/public_html/cgi-bin/test.pl
[Thu Mar 4 22:52:12 2004] [error] [client XXXXXXXXX] Premature end of script headers: /home/k/XXXXXXXXX/public_html/cgi-bin/env.cgi
Ob da wohl einer einen denkanstoß für mich hat ?
[client xxxxxxxx] Premature end of script headers: /home/k/Xxxxxxx.de/public_html/cgi-bin/env.pl
[Thu Mar 4 22:51:12 2004] [error] [client XXXXXXX] Premature end of script headers: /home/k/XXXXXXX/public_html/cgi-bin/test.pl
[Thu Mar 4 22:52:12 2004] [error] [client XXXXXXXXX] Premature end of script headers: /home/k/XXXXXXXXX/public_html/cgi-bin/env.cgi
Re: Perl und aufruf von Scripten
wirf mal einen Blick in die suexec.log bzw suexec_log.
Re: Perl und aufruf von Scripten
ein blick habe ich auch da mal reskiertwgot wrote:Hallo,
wirf mal einen Blick in die suexec.log bzw suexec_log.
755 gesetzt, ascii hochgeladen, /usr/local/bin/perl existiert?
Gruß, Wolfgang
info: (target/actual) uid: (b26020410245160/b26020410245160) gid: (www/www) cmd: test.pl
[2004-03-04 22:51:12]: error: command not in docroot (/home/k/xxxxxxx/public_html/cgi-bin/test.pl)
[2004-03-04 22:52:12]: info: (target/actual) uid: (b26020410245160/b26020410245160) gid: (www/www) cmd: env.cgi
[2004-03-04 22:52:12]: error: command not in docroot (/home/k/xxxxxxxx/public_html/cgi-bin/env.cgi)
der sagt mir jetzt das der befehl nicht in der doc root steht aber dat kapiere ich jetzt nicht ... wieso steht der da nicht und welcher befehl muß da hin ?
zu den ander sachen rechte habe auf 755 und auch mit ascii hochgeladen.
Mit dem verzeichnis habe ich aber den jetzt mein problem ....
also perl habe ich unter usr/bin/ aber nicht unter usr/local/bin/perl
wat muß ich den da jetzt machen ?
Re: Perl und aufruf von Scripten
Hallo,
suexec -V
Da steht der DocRoot von Suexec, mit Deinem vergleichen. Wenn nicht identisch, Forensuche, Problem gab's die letzten Wochen haufenweise.
Gruß, Wolfgang
#!/usr/bin/perl als erste Scriptzeile.markus72 wrote: also perl habe ich unter usr/bin/ aber nicht unter usr/local/bin/perl
wat muß ich den da jetzt machen ?
suexec -V
Da steht der DocRoot von Suexec, mit Deinem vergleichen. Wenn nicht identisch, Forensuche, Problem gab's die letzten Wochen haufenweise.
Gruß, Wolfgang
Re: Perl und aufruf von Scripten
Ok, ein ganz ähnliches, "mysteriöses" Problem hatte ich auch.
Scripte waren alle in Ordnung und liefen auf jedem server....nur nicht auf meinem.
Der Rätsels (Teil-) Lösung: Ã?ffne mal via SSH mit dem Midnight Commander die script-Datei (F4). Siehst Du dann an jedem Zeilenende ein ^M ?
Ich habe so an die 15 Windows-Editoren ausprobiert aber keiner konnte dieses Zeichen sichtbar machen. Ich weiß ehrlich gesagt im Moment noch nicht mal, ob es beim Upload hinzugefügt wird oder vorher schon da ist. Fest steht allerdings, daß es auch dann da ist wenn ich das script nicht in einem Editor geöffnet hab'.
So, mach das ^M in der ersten Zeile einfach weg. Den Rest ignoriert der Server. Dann läuft das script.
Grüße
Holger
Scripte waren alle in Ordnung und liefen auf jedem server....nur nicht auf meinem.
Der Rätsels (Teil-) Lösung: Ã?ffne mal via SSH mit dem Midnight Commander die script-Datei (F4). Siehst Du dann an jedem Zeilenende ein ^M ?
Ich habe so an die 15 Windows-Editoren ausprobiert aber keiner konnte dieses Zeichen sichtbar machen. Ich weiß ehrlich gesagt im Moment noch nicht mal, ob es beim Upload hinzugefügt wird oder vorher schon da ist. Fest steht allerdings, daß es auch dann da ist wenn ich das script nicht in einem Editor geöffnet hab'.
So, mach das ^M in der ersten Zeile einfach weg. Den Rest ignoriert der Server. Dann läuft das script.
Grüße
Holger
Re: Perl und aufruf von Scripten
Hallo Holger,
Dein Problem ist ein ganz anderes:
Unter Windows wird das Zeilenende mit ^m^n (= rn) markiert. Unter Linux nur ^n (= n). Die ^m werden unter Linux als Teil des Textes verstanden und dann wird z.B. nach /usr/bin/perl^m gesucht und die Datei perl^m natürlich nicht gefunden.
Einfache Lösung: für die Ã?bertragung von Scripts und anderen Textdateien im FTP-Programm ASCII-Mode einstellen. Dann werden die ^m automatisch entfernt bzw beim Download hinzugefügt.
Gruß, Wolfgang
Dein Problem ist ein ganz anderes:
Unter Windows wird das Zeilenende mit ^m^n (= rn) markiert. Unter Linux nur ^n (= n). Die ^m werden unter Linux als Teil des Textes verstanden und dann wird z.B. nach /usr/bin/perl^m gesucht und die Datei perl^m natürlich nicht gefunden.
Einfache Lösung: für die Ã?bertragung von Scripts und anderen Textdateien im FTP-Programm ASCII-Mode einstellen. Dann werden die ^m automatisch entfernt bzw beim Download hinzugefügt.
Gruß, Wolfgang
Re: Perl und aufruf von Scripten
Hi Wolfgang
nunja, das ist natürlich das erste an das man bei einem solchen Problem denkt.
Als nächstes beginnt man die Dateien, die auf einem anderen Server laufen, im Binärmodus (also unverändert) herunterzuladen und sie - ohne sie vorher auf Windows geöffnet zu haben - im Binärmodus auf den Problemserver hochzuladen.
Und wenn auch das nichts hilft, dann bittet man ein paar Freunde, das mal zu machen um auszuschließen, daß es am eigenen System oder dem FTP-Programm liegt.
Was aber wenn das immer noch nichts bringt?
Grüße
Holger
nunja, das ist natürlich das erste an das man bei einem solchen Problem denkt.
Als nächstes beginnt man die Dateien, die auf einem anderen Server laufen, im Binärmodus (also unverändert) herunterzuladen und sie - ohne sie vorher auf Windows geöffnet zu haben - im Binärmodus auf den Problemserver hochzuladen.
Und wenn auch das nichts hilft, dann bittet man ein paar Freunde, das mal zu machen um auszuschließen, daß es am eigenen System oder dem FTP-Programm liegt.
Was aber wenn das immer noch nichts bringt?
Grüße
Holger
Re: Perl und aufruf von Scripten
Hallo Holger,
Du kannst Dir die Dateien unter Windows mit dem Debugger ansehen.
Konsolenfenster (DOS-Fenster) öffnen, debug script.pl, d<return>
Rechts siehst Du den Text, und in der Hexdarstellung für jedes Zeilenende "0D 0A". Das ist korrekt, "0D 0D 0A" oder ähnlicher Unfug darf aber nicht auftreten (0D 0A 0D 0A ist natürlich eine Leerzeile).
Gruß, Wolfgang
Du kannst Dir die Dateien unter Windows mit dem Debugger ansehen.
Konsolenfenster (DOS-Fenster) öffnen, debug script.pl, d<return>
Rechts siehst Du den Text, und in der Hexdarstellung für jedes Zeilenende "0D 0A". Das ist korrekt, "0D 0D 0A" oder ähnlicher Unfug darf aber nicht auftreten (0D 0A 0D 0A ist natürlich eine Leerzeile).
Gruß, Wolfgang
Re: Perl und aufruf von Scripten
Hi Wolfgang
Hexeditor!!! Warum bin ich darauf nicht früger gekommen? :)
Ja, bei meinen Dateien ist dieses Zeilenende-Zeichen tatsächlich vorhanden. (Naja, wäre auch unsinnig gewesen wenn es erst beim Upload hinzugefügt worden wäre).
Die Frage ist bloß: Wieso wird es durch den Upload im ASCII-Modus nicht entfernt? *grübel*
Grüße
Holger
Hexeditor!!! Warum bin ich darauf nicht früger gekommen? :)
Ja, bei meinen Dateien ist dieses Zeilenende-Zeichen tatsächlich vorhanden. (Naja, wäre auch unsinnig gewesen wenn es erst beim Upload hinzugefügt worden wäre).
Die Frage ist bloß: Wieso wird es durch den Upload im ASCII-Modus nicht entfernt? *grübel*
Grüße
Holger
Re: Perl und aufruf von Scripten
Hallo Holger,
kann mir nur vorstellen, daß Du im FTP-Programm irgendwas falsch machst. Probier doch einfach mal ein anderes.
Nach dem Upload Dateigröße kontrollieren, die Datei ist auf dem Server kleiner als auf dem Win-PC, weil je Zeile ein Byte wegfällt.
Du kannst die Scripte auch mit dos2unix nachträglich korrigieren, aber das ist wohl am Problem vorbei.
Gruß, Wolfgang
kann mir nur vorstellen, daß Du im FTP-Programm irgendwas falsch machst. Probier doch einfach mal ein anderes.
Nach dem Upload Dateigröße kontrollieren, die Datei ist auf dem Server kleiner als auf dem Win-PC, weil je Zeile ein Byte wegfällt.
Du kannst die Scripte auch mit dos2unix nachträglich korrigieren, aber das ist wohl am Problem vorbei.
Gruß, Wolfgang
Re: Perl und aufruf von Scripten
Hi Wolfgang
an meinem FTP-Programm kann's nicht liegen.
Erstens bediene ich damit ja auch (bei gleicher Einstellung) andere Server und zweitens habe ich ja ein paar Freunde von mir gebeten, die Dateien mal von Ihrem System aus hochzuladen.
Das Ergebnis war immer das gleiche.
Mich würde allerdings mal interessieren, ob dieses Zeichen nicht auch an die anderen Server übertragen wird; diese das aber einfach ignorieren. Hab' auf die anderen Server leider keinen Zugriff via SSH.
Das einzige was ich tun konnte, um das herauszufinden war, die Dateien binär von den anderen Servern zu laden und dann in einem Hexeditor zu öffnen.
Hab' das gestern Abend gemacht.
Und ja, auch in diesen Dateien befindet sich das Windows-Zeilenende.
Ich halte diese Methode jedoch nicht unbedingt für sicher. Schließlich sollten die Zeichen im ASCII Modus ja auch gelöscht werden was nicht der fall ist...
Wenn es aber so ist, dann frage ich mich, was da wohl installiert sein könnte, das dieses Zeichen ignoriert...
Grüße
Holger
an meinem FTP-Programm kann's nicht liegen.
Erstens bediene ich damit ja auch (bei gleicher Einstellung) andere Server und zweitens habe ich ja ein paar Freunde von mir gebeten, die Dateien mal von Ihrem System aus hochzuladen.
Das Ergebnis war immer das gleiche.
Mich würde allerdings mal interessieren, ob dieses Zeichen nicht auch an die anderen Server übertragen wird; diese das aber einfach ignorieren. Hab' auf die anderen Server leider keinen Zugriff via SSH.
Das einzige was ich tun konnte, um das herauszufinden war, die Dateien binär von den anderen Servern zu laden und dann in einem Hexeditor zu öffnen.
Hab' das gestern Abend gemacht.
Und ja, auch in diesen Dateien befindet sich das Windows-Zeilenende.
Ich halte diese Methode jedoch nicht unbedingt für sicher. Schließlich sollten die Zeichen im ASCII Modus ja auch gelöscht werden was nicht der fall ist...
Wenn es aber so ist, dann frage ich mich, was da wohl installiert sein könnte, das dieses Zeichen ignoriert...
Grüße
Holger
Re: Perl und aufruf von Scripten
also dank für eure Tips, damit konnte ich die probs mit dem Script lösen. Es liegt meist an den kleinigkeiten die man selber übersieht.
habt dank
habt dank
Re: Perl und aufruf von Scripten
Vollständigkeitshalber, auch wenn das akute Problem schon gelöst ist:
Man kann die unerwünschten Zeichen auch direkt auf dem Server durch Laden und wieder-Abspeichern mit manchem Editor entfernen. Definitiv weiß ich, dass es mit pico geht, vi angeblich auch.
Erschöpfend abgehandelt und erklärt u.a.: http://www.servercommunity.de/viewtopic.php?t=790
Gruß, Manfred
Man kann die unerwünschten Zeichen auch direkt auf dem Server durch Laden und wieder-Abspeichern mit manchem Editor entfernen. Definitiv weiß ich, dass es mit pico geht, vi angeblich auch.
Erschöpfend abgehandelt und erklärt u.a.: http://www.servercommunity.de/viewtopic.php?t=790
Gruß, Manfred