Perl Skript auf einem Webserver ausführen

Alt 25.12.2008, 18:33   # 1
Tobi94b
 
Registriert seit: 11.11.2008
Beiträge: 24
Hallo,

ich habe überhaupt keine Ahnung wie ein Perl Skript funktioniert, geschweige denn es anzuwenden. Ich habe ein bisschen was gelesen und habe dann folgendes getan:
-Datei mit dem Namen test.pl abgespeichert
-Inhalt der Datei lautet:
Code:
 #!/usr/bin/perl -w
 $name = "Andreas";
 print "Hallo $name\n";
-das ganze auf meinen Webserver upgeloadet
-www.XXXXXXXXXX.eu/test.pl aufgerufen
Ich dachte eigentlich das ich dort dann Hallo Andreas! angezeigt bekomme, doch mein Browser bat mir nur an die Datei herunter zu laden anstatt mir Text anzuzeigen. Ich habe das Skript auch mal umbenannt in test.cgi doch dann konnte ich nur den Inhalt lesen (meinen Code). Ich habe dem Skript alle Rechte gegeben, nur X, nur W, nur R und wie gesagt XWR.
Warum geht das nicht? Was mache ich falsch? Ich dachte mein Server könnte das, denn z.B. steht bei meiner Fehlerseite
Zitat:
Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 PHP/4.4.4-8+etch6 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8 Server at XXXXXXXXXX.eu Port 80
unten drunter.

Viele Grüße + Vielen Dank für die Hilfe!

PS: Frohe Tage
  Mit Zitat antworten
Alt 26.12.2008, 12:13   # 2
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Moin,

kann es sein, dass Du Deine Perl-Skripte nur in /cgi-bin/ ausführen kannst? Ist eigentlich die übliche Webserver-Konfiguration...

Grüße,
Thorsten
  Mit Zitat antworten
Alt 26.12.2008, 13:04   # 3
Tobi94b
Threadstarter
 
Registriert seit: 11.11.2008
Beiträge: 24
Ich bin mir nicht sicher, aber das kann gut sein, da auf meinem Server ein Ordner cgi-bin existiert.
Wenn ich das dort rein schiebe, wie kann ich das dann ausführen lassen/aufrufen? Wenn ich mit meinem FTP (WinSCP) connecte sehe ich folgende Ordner:
attachment
Mein root Ordner ist httpdocs, wenn dort eine Datei datei.html abgelegt wird, kann ich diese über http://XXXXXXXXXX.eu/datei.html aufrufen. Wie führe ich ein cgi/perl Skript aus? (Wie greife ich auf diesen Ordner zu)

Vielen Dank schonmal für den Hinweis
Angehängte Grafiken
Dateityp: png cgi-bin.PNG (4,0 KB, 12x aufgerufen)
  Mit Zitat antworten
Alt 27.12.2008, 11:18   # 4
Tobi94b
Threadstarter
 
Registriert seit: 11.11.2008
Beiträge: 24
Kann mir keiner helfen?
Ich stelle nochmal meine aktuelle Frage.
Wie kann ich CGI Skripte die in meinem Ordner cgi-bin liegen ausführen lassen (über meine Webseite)?

Vielen Dank
  Mit Zitat antworten
Alt 28.12.2008, 08:51   # 5
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Zitat:
Zitat von Tobi94b Beitrag anzeigen
Kann mir keiner helfen?
Sowas ärgert mich jetzt, Hallo, es waren Feiertage, da gibt es auch Leute, die was anderes tun als im Netz rum zu hängen. Und auch an ganz normalen Tagen würde Dir etwas Geduld gut tun...
Zitat:
Ich stelle nochmal meine aktuelle Frage.
Wie kann ich CGI Skripte die in meinem Ordner cgi-bin liegen ausführen lassen (über meine Webseite)?
Bahnhof? Du hast das oben doch im Groben schon geschildert, Du weißt, dass Du das Ausführen-x-Attribut setzen musst, Du weißt, dass Du ein Skript über "www.XXXXXXXXXX.eu/test.pl aufgerufen" kannst, was liegt näher als es mit "www.XXXXXXXXXX.eu/cgi-bin/test.pl" auszuprobieren?

Natürlich gibt es auch noch weitere Fehlerquellen, z.B. wenn der Pfad zu Perl in der ersten Zeile des Skriptes nicht stimmt, das hängt von Deinem Server ab und sollte von Deinem Provider irgendwo bekannt gemacht sein, in seinen FAQs oder so.

Grüße,
Thorsten
__________________
Wieder da: FreewareGuide.de
...bin letztens durch die Aufnahmeprüfung zur Hellseherschule gekracht! smiley crystal ball
  Mit Zitat antworten
Alt 28.12.2008, 11:12   # 6
Tobi94b
Threadstarter
 
Registriert seit: 11.11.2008
Beiträge: 24
Zitat:
Zitat von FreewareGuide Beitrag anzeigen
Sowas ärgert mich jetzt, Hallo, es waren Feiertage, da gibt es auch Leute, die was anderes tun als im Netz rum zu hängen. Und auch an ganz normalen Tagen würde Dir etwas Geduld gut tun...
Okey entschuldigung.
Also vermutlich hab ich das Problem nicht genau geschildert, wenn ich z.B. test.pl in cgi-bin ablege dann kann ich es nicht über www.XXXXXXXXXX.eu/cgi-bin/test.pl aufrufen, obwohl es eigentlich bei jedem Hoster so funktioniert. Jetzt hab ich das auf meinem lokalen Webserver ausprobiert. Dort kann ich Inhalte die im Ordner cgi-bin (auf selber Ebene wie htdocs) über localhost/cgi-bin/ aufrufen. Da hab ich mir mal das hier zum Thema cgi auf Apache Servern durchgelesen, bin meine eigene httpd.conf durchgegangen und habe folgende Teile entdeckt:
Code:
<Directory "/xampp/webalizer">
    Options Indexes ExecCGI
    AddHandler cgi-script .cgi .exe
    Order allow,deny
    Allow from all
</Directory>
Code:
    Options Indexes FollowSymLinks Includes ExecCGI
    AddType text/html .shtml
    AddHandler server-parsed .shtml
    AddHandler cgi-script .cgi .pl
Code:
ScriptAlias /cgi-bin/ "/xampp/cgi-bin/"
...
<Directory "/xampp/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
Das blau makierte sorgt also dafür das, wenn die Adresse http://localhost/cgi-bin/ lautet, der Webserver die Inhalte aus dem Ordner cgi-bin, der eine Ebene höher liegt aufgerufen werden.

Mit anderen Worten mein Hoster hat seinen Server vermutlich falsch konfiguriert (

Trotzdem Vielen Dank für die Antworten
Thema kann geclosed werden
  Mit Zitat antworten
Alt 28.12.2008, 11:46   # 7
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Zitat:
Zitat von Tobi94b Beitrag anzeigen
Mit anderen Worten mein Hoster hat seinen Server vermutlich falsch konfiguriert
Das kann natürlich sein, solltest Du mal nachfragen.
  Mit Zitat antworten

Alt 28.05.2012, 21:12 # --
News Flash
 
Benutzerbild von News Flash
 
 
 

Das könnte Dich auch noch interessieren:

Nicht fündig geworden? Dann ohne Anmeldung in unserem Gast-Forum nachfragen.

   
Antwort
Themen-Optionen



Alle Zeitangaben in WEZ +2. Es ist jetzt 21:12 Uhr.