perl skript was tun ?!?
perl skript was tun ?!?
hallo,
ich habe ein perl skript, dass von meinem rechner aus, aufgerufen werden soll. sprich das einzige was ich z.Zt. habe ist, myscript.pl ...
was muss ich installieren, um dieses später z.B. über http://meineip/myscript.pl zum laufen zu kriegen.
ich gehe mal davon asu, dass ich dafür nen webserver auf meinem debian system installieren muss. also butter bei die fische: muss ich apache + myphp installieren? oder was nimmt man da am besten, wenn mans so einfach wie möglich amchen will.
wahrscheinlich ist apache für diesen zweck mit kanonen auf spatzen geschossen. vielleicht gibt mir einer nen schubs in die richtige richtung. danke im voraus.
ich habe ein perl skript, dass von meinem rechner aus, aufgerufen werden soll. sprich das einzige was ich z.Zt. habe ist, myscript.pl ...
was muss ich installieren, um dieses später z.B. über http://meineip/myscript.pl zum laufen zu kriegen.
ich gehe mal davon asu, dass ich dafür nen webserver auf meinem debian system installieren muss. also butter bei die fische: muss ich apache + myphp installieren? oder was nimmt man da am besten, wenn mans so einfach wie möglich amchen will.
wahrscheinlich ist apache für diesen zweck mit kanonen auf spatzen geschossen. vielleicht gibt mir einer nen schubs in die richtige richtung. danke im voraus.
- godsmacker
- Beiträge: 902
- Registriert: 16.03.2003 21:50:26
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: Chemnitz
-
Kontaktdaten:
- dominator
- Beiträge: 790
- Registriert: 26.08.2003 10:05:37
- Wohnort: Neuerdings meistens im Bierparadies Oberfranken
Abschnitt F : http://httpd.apache.org/docs/misc/FAQ.htmlshangfu hat geschrieben:...
kennt jemand nen howto oder ne gute doku wo ich was entsprechendes finden kann??!?
und zur config : http://httpd.apache.org/docs/howto/cgi.html
gruss + viel erfolg
Michael
--
Aus aktuellem Anlass :
"Der Glubb is a Depp" - Fränkische Weisheit
Michael
--
Aus aktuellem Anlass :
"Der Glubb is a Depp" - Fränkische Weisheit
- emge
- Beiträge: 1525
- Registriert: 20.10.2003 22:05:46
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: 50° 45' 0" N 12° 10' 0" E
Nimmst du debian, dann hilft dir folgendes:
Grüße, Marco
Code: Alles auswählen
apt-get install apache
apt-get install libapache-mod-perl
- godsmacker
- Beiträge: 902
- Registriert: 16.03.2003 21:50:26
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: Chemnitz
-
Kontaktdaten:
so...erstmal danke für eure hilfe.
ich habe jetzt auf meinem system apache installiert mit besagten zeilen:
Momentan will ich eigentlich nichts anderes als ein .pl skript von meinem windows rechner über http://ip/meinskript.pl aufzurufen.
Laut Dokumentation müssen *.pl dateien ja in /usr/lib/cgi-bin/ liegen. Da habe ich die auch soweit reinkopiert. Rufe ich dann dieses Skript mit dem IE auf, erhalte ich 404 File not found.
Denke mal da muss noch einiges konfiguriert werden, doch was? Wenn ich z.B. auf meinen Webserver im www was hochlade muss ich z.B. chmod berücksichtigen,etc. ... muss ich hier sicherlich auch tun oder? Wäre nett wenn jemand mir helfen könnte, was nach meiner Installation zu tun ist, um ein solches Skript wie beschrieben zum Laufen zu bringen.
danke!
ich habe jetzt auf meinem system apache installiert mit besagten zeilen:
Code: Alles auswählen
apt-get install apache
apt-get install libapache-mod-perl
Laut Dokumentation müssen *.pl dateien ja in /usr/lib/cgi-bin/ liegen. Da habe ich die auch soweit reinkopiert. Rufe ich dann dieses Skript mit dem IE auf, erhalte ich 404 File not found.
Denke mal da muss noch einiges konfiguriert werden, doch was? Wenn ich z.B. auf meinen Webserver im www was hochlade muss ich z.B. chmod berücksichtigen,etc. ... muss ich hier sicherlich auch tun oder? Wäre nett wenn jemand mir helfen könnte, was nach meiner Installation zu tun ist, um ein solches Skript wie beschrieben zum Laufen zu bringen.
danke!
- emge
- Beiträge: 1525
- Registriert: 20.10.2003 22:05:46
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: 50° 45' 0" N 12° 10' 0" E
Müsste der Aufruf nichtshangfu hat geschrieben:so...erstmal danke für eure hilfe.
ich habe jetzt auf meinem system apache installiert mit besagten zeilen:
Momentan will ich eigentlich nichts anderes als ein .pl skript von meinem windows rechner über http://ip/meinskript.pl aufzurufen.Code: Alles auswählen
apt-get install apache apt-get install libapache-mod-perl
Laut Dokumentation müssen *.pl dateien ja in /usr/lib/cgi-bin/ liegen. Da habe ich die auch soweit reinkopiert. Rufe ich dann dieses Skript mit dem IE auf, erhalte ich 404 File not found.
Denke mal da muss noch einiges konfiguriert werden, doch was? Wenn ich z.B. auf meinen Webserver im www was hochlade muss ich z.B. chmod berücksichtigen,etc. ... muss ich hier sicherlich auch tun oder? Wäre nett wenn jemand mir helfen könnte, was nach meiner Installation zu tun ist, um ein solches Skript wie beschrieben zum Laufen zu bringen.
danke!
Code: Alles auswählen
http://ip/cgi-bin/meinskript.pl
Grüße, Marco
hallo,
also wie es scheint hast du recht und man muss das ganze über
http://ip/cgi-bin/myskript.pl aufrufen.
Ich habe zwei unterschiedliche Testskripte.
test.pl:
test2.pl:
Alle Skripte habe ich mit chmod 0777 versehen. Was auch immer das zu bedeuten hat o_O ?!??
Rufe ich jetzt vom IE aus besagte Seiten auf, dann werden beide Skripte dargestellt. Rufe ich allerdings im Konquerer diese Skripte auf, funzt nur das erste bei dem zweiten will er das downloaden. Warum ist das so?!?
*Update* Habe gesehen, wenn ich auf Öffnen klicke und nicht speichern unter... dann wird mir das Skript als Plain Text dargestellt.
also wie es scheint hast du recht und man muss das ganze über
http://ip/cgi-bin/myskript.pl aufrufen.
Ich habe zwei unterschiedliche Testskripte.
test.pl:
Code: Alles auswählen
#!/usr/bin/perl -w
print "Content-Type: text/html\n\n";
print "<html><head><title>TEST-CGI-SKRIPT</title></head>\n";
print "<body><h1>Gratulation!!! Ihr erstes CGI-Skript.</h1></body></html>";
Code: Alles auswählen
#!/usr/bin/perl -w
print "Content-type: text/plain\n\n";
print "mod_perl rules!\n";
Rufe ich jetzt vom IE aus besagte Seiten auf, dann werden beide Skripte dargestellt. Rufe ich allerdings im Konquerer diese Skripte auf, funzt nur das erste bei dem zweiten will er das downloaden. Warum ist das so?!?
*Update* Habe gesehen, wenn ich auf Öffnen klicke und nicht speichern unter... dann wird mir das Skript als Plain Text dargestellt.
- emge
- Beiträge: 1525
- Registriert: 20.10.2003 22:05:46
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: 50° 45' 0" N 12° 10' 0" E
Du setzt im Perl-Script den Content-Typ auf text/plain. Der Typ wird vom jeweiligen Client ausgewertet und der Client entscheidet, was damit zu machen ist. Kommt also darauf an, was im Konqueror für den Typ text/plain eingestellt ist. Einzustellen geht das unter Settings->Configure Konqueror...->File Associations.shangfu hat geschrieben:test2.pl:...Code: Alles auswählen
#!/usr/bin/perl -w print "Content-type: text/plain\n\n"; print "mod_perl rules!\n";
Rufe ich allerdings im Konquerer diese Skripte auf, funzt nur das erste bei dem zweiten will er das downloaden. Warum ist das so?!?
*Update* Habe gesehen, wenn ich auf Öffnen klicke und nicht speichern unter... dann wird mir das Skript als Plain Text dargestellt.
Grüße, Marco
oh danke klasse!
das eigentliche skript was ich zum laufen bringen wollte, klappt momentan leider noch nicht. wenn ich das aufrufe, dann bekomme ich einen internal server error.
in der error.log vom apache server steht folgendes:
die erste meldung kann ich mir nicht erklären, da die datei im entsprechenden verzeichnis liegt.
die zweite meldung kann ich nicht zuordnen, was bedeutet das? hilft es, wenn ich den code des skriptes poste?
das eigentliche skript was ich zum laufen bringen wollte, klappt momentan leider noch nicht. wenn ich das aufrufe, dann bekomme ich einen internal server error.
in der error.log vom apache server steht folgendes:
Code: Alles auswählen
[Wed Dec 17 15:53:06 2003] [error] (2)No such file or directory: exec of /usr/lib/cgi-bin/test3.pl failed
[Wed Dec 17 15:53:06 2003] [error] [client 10.120.20.251] Premature end of script headers: /usr/lib/cgi-bin/test3.pl
die zweite meldung kann ich nicht zuordnen, was bedeutet das? hilft es, wenn ich den code des skriptes poste?
- emge
- Beiträge: 1525
- Registriert: 20.10.2003 22:05:46
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: 50° 45' 0" N 12° 10' 0" E
Dein Apache-Server läuft im Allgemeinen unter einem bestimmten User. Debian installert ihn standardmässig unter www-data. Alle Dateien, die der Server lesen und ausführen soll, müssen dann natürlich diese Rechte auch für diesen User haben.shangfu hat geschrieben:chmod 0777 ...
was ist ein/der apache user ?!?
Jedenfalls klingt deine Fehlermeldung danach, dass er (der Apache-User) die Datei nicht finden kann oder sie für ihn nicht erreichbar/ausführbar ist. Was kommt zurück, wenn du
Code: Alles auswählen
ls -l /usr/lib/cgi-bin/test3.pl
Grüße, Marco
folgendes resultat:
wo steht denn was die ganzen chmod werte bewirken? mit 0777 müssten aber eigentlich alle das skript ausführen können oder?
Code: Alles auswählen
-rwxrwxrwx 1 root root 1518 Dec 17 11:27 /usr/lib/cgi-bin/test3.pl
Wenn sie die Rechte haben für das Verzeichnis /usr/lib/cgi-bin, jashangfu hat geschrieben:folgendes resultat:
wo steht denn was die ganzen chmod werte bewirken? mit 0777 müssten aber eigentlich alle das skript ausführen können oder?Code: Alles auswählen
-rwxrwxrwx 1 root root 1518 Dec 17 11:27 /usr/lib/cgi-bin/test3.pl
Stimmen die Rechte des Verzeichnisses ??
- emge
- Beiträge: 1525
- Registriert: 20.10.2003 22:05:46
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: 50° 45' 0" N 12° 10' 0" E
shangfu hat geschrieben:folgendes resultat:
wo steht denn was die ganzen chmod werte bewirken? mit 0777 müssten aber eigentlich alle das skript ausführen können oder?Code: Alles auswählen
-rwxrwxrwx 1 root root 1518 Dec 17 11:27 /usr/lib/cgi-bin/test3.pl
Code: Alles auswählen
|-|rwx|rwx|rwx|
0 7 7 7
Die Berechtigungen sind in Gruppen eingeteitl: user, group, others. die Berechtigungen einer Gruppe werden in einer Zahl zusammengefasst. Diese Zahl ist in einen Binär-Wert umzurechnen. Für die 7 steht dann ein 0111->
Code: Alles auswählen
rwx
0111
Ich hoffe, das war einigermassen verständlich.
Grüße, Marco
also das verzeichnis hat folgende berechtigungen:
sollte eigentlich auch passen - oder? denke es liegt aber irgendwie am skript. ich werde gleich nochmal nem freund das skript zeigen, der sich mit perl ein bisschen besser auskennt. mal sehen...
und danke@marco: gute erklärung!
*UPDATE*
Wenn ich das Skript versuche mit "perl test3.pl" auszuführen, dann bekomme ich ne andere Fehlermeldung nämlich:
Hmmm, muss ich eventuell noch irgendeine Bibliothek nachinstallieren? Die Fehlermeldung wird aufgrund dieses Stückchen Code erzeugt:
Code: Alles auswählen
drwxr-xr-x 2 root root 4096 Dec 17 12:15 cgi-bin
und danke@marco: gute erklärung!
*UPDATE*
Wenn ich das Skript versuche mit "perl test3.pl" auszuführen, dann bekomme ich ne andere Fehlermeldung nämlich:
Code: Alles auswählen
Couldn't create server socket
Code: Alles auswählen
my $server = IO::Socket::INET->new (LocalPort => $port,
Type =>SOCK_STREAM,
Reuse => 1,
Listen => $port) or die("Couldnt't create server socket\n");
Code: Alles auswählen
my $port = 80;