Schrift
[thread]950[/thread]

cgi-script wird nicht ausgeführt

Leser: 2


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
delmaster
 2007-06-29 14:36
#234 #234
User since
2007-06-29
6 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

Ich lerne gerade ein bisschen perl.
1. Apache läuft
2. perl_mod installiert
3. einfache perl-scripte über /srv/www/cgi-bin/ perl script.pl werden ausgeführt
Jetzt habe ich ein HTML-Dokument in:
/srv/www/htdocs/test1.html
in diesem HTML-Formular wird das script: test1.pl aufgerufen
nach dem Aufruf kommt im Firefox die Meldung:
Sie möchten eine Datei herunterladen
Öffnen mit...
Auf Festplatte speichern
Wie kann ich dem Browser sagen, daß "Er" Dateiene mit der Endung *.pl mit dem perl-Interpreter öffnet?

Habe jetzt "gesagt": Öffnen mit: /usr/bin/perl
neues Browserfenster gleiche Frage
wieder:Öffnen mit: /usr/bin/perl
Neuses Fenster Ohne Ausgabe!
test1.pl
Code:
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl 
use strict;
read(STDIN, $Daten,, $ENV{'CONTENT_LENGTH'});
print "Content-type: text/html\n\n";
print "<html><head><title>CGI-Reaktion</title></head>\n";
print "<body><h1>Reaktion des CGI-Programms</h1>\n";
print $ENV['CONTENT_LENGT&H'};
print "</body></html>\n";


test1.html
Code:
Code: (dl )
1
2
3
4
5
6
7
8
<html><head><title>test1.html</title></head> 
<body>
<h1>Testformular</h1>
<form action="/cgi-bin/test1.pl" method=post>
Name: <input size=40 maxlength=40 name="Anwendername""><br>
Text: <textarea rows=5 cols=70 name="Kommentartext" wrap=virtual></textarea><p>
<input type=submit value="Absenden">
</form></body></html>


Eigentlich sollte eine Browserausgabe erscheinen in der die Anzahl der übergebene Zeichen steht, es erscheint lediglich ein leeres Browserfenster
Könnt ihr mir sagen, wo hier der Fehler liegt?

Danke für Eure Hilfe\n\n

<!--EDIT|delmaster|1183113478-->
MisterL
 2007-06-29 14:56
#235 #235
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
Da ist noch mehr schiefgelaufen...
Hier eine verbesserte Codierung von test1.pl
Code: (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl
use strict;
use warnings;
read(STDIN, my $Daten, $ENV{'CONTENT_LENGTH'});
print "Content-type: text/html\n\n";
print "<html><head><title>CGI-Reaktion</title></head>\n";
print "<body><h1>Reaktion des CGI-Programms</h1>\n";
print $ENV{'CONTENT_LENGTH'};
print "</body></html>\n";


test1.html in D:\xampp\htdocs\xampp und test1.pl in \xampp\cgi-bin bringen und aufrufen führte hier aber zum Fehler 404 :((
“Perl is the only language that looks the same before and after RSA encryption.”
renee
 2007-06-29 15:21
#236 #236
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das muss in der httpd.conf vom Apachen eingestellt werden...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
delmaster
 2007-07-01 02:45
#237 #237
User since
2007-06-29
6 Artikel
BenutzerIn
[default_avatar]
Hallo, erst mal vielen Dank für Deine Antwort.
Habe gleich die "sauberere" Variante des test1.pl eingesetzt, aber auch kein Erfolg.
in meiner /etc/apache2/default-server.conf steht folgendes
hier nur der relevante Teil: ;)
Code: (dl )
1
2
3
4
5
6
7
8
# CGI directory exists, if you have that configured. 
#
<Directory "/srv/www/cgi-bin">
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>

ich denke das ist das wichtige was drinstehen muss?
oder?
Trotzdem wird das perl-script als Aufruf vom Html nicht ausgeführt?
Wo kann ich sonst nach Fehlern suchen?
Danke für Deine Hilfe
pq
 2007-07-01 05:24
#238 #238
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
eventuell:
AddHandler cgi-script .pl
ich glaube, default ist .cgi
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
delmaster
 2007-07-01 15:09
#239 #239
User since
2007-06-29
6 Artikel
BenutzerIn
[default_avatar]
Hallo renee,
Quote
Das muss in der httpd.conf vom Apachen eingestellt werden...

Was muss an welcher Stelle in der datei eingestellt werden?
Danke für Deine Antwort

PS: Ich dachte, wenn ich ein Linux-System neu aufsetze
apache mit modulen installiere, das dann perl-scripte ausgeführt werden (automatisch)
renee
 2007-07-01 16:35
#240 #240
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das kannst Du "global" in der httpd.conf einstellen oder speziell für ein Verzeichnis.

Such mal nach "AddHandler cgi-script". Da ist meistens - wie pq schon geschrieben hat - was von .cgi eingestellt. Das änderst Du einfach ab.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
bieber
 2007-07-02 13:26
#241 #241
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
warum nutzt du eigentlich nicht die fertigen perlfunktionen für die übergabe der Daten?! macht es wesentlich übersichtlicher (finde ich)
Code: (dl )
1
2
3
4
5
use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);

my $name=param('Anwendername');
print $name if (defined $name);


ist ungetestet, wichtig ist das du mit Hilfe von "use CGI qw/:standard/;"
und "param('name des form' )" dessen value bekommst

zum testen nutze ich auch immer method="get", dann sieht man immer ob auch alles so läuft wie man will ;)


edit:
zu deinem Problem das script zu starten...
es kommt keine Fehlermeldung?! nur weißer bildschirm?
ist mir ehrlich gesagt noch nie untergekommen^^

mögliche Fehlerquellen sehe ich bei:
1. ist die .pl überhaupt mit den nötigen Rechten versehen?! rw
2. cgi-bin Pfad ist nicht auf das Verzeichnis gestellt indem du dein script hast

unter suse musst du unter /etc/apache2/vchost.d/vchost.template den Pfad ändern in der Zeile "ScriptAlias /cgi-bin/"
in anderen distributionen ist es meist direkt in der http.conf

3. perlmodul für den apache nicht mitinstalliert, oder parallel auch php\n\n

<!--EDIT|bieber|1183375405-->
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
delmaster
 2007-07-02 20:09
#242 #242
User since
2007-06-29
6 Artikel
BenutzerIn
[default_avatar]
Hallo bieber,
danke für Deine Antwort.
Ich habe die Rechte der Datei auf 777 gesetzt, damit sie auch ausgeführt werden darf.
Nun erschein mein Browserfenster mit dem Inhalt:
Titel:CGI-Reaktion
und
als h1 Überschrift:
Reaktion des CGI-Programms
aber die Anzahl der Zeichen wird nicht ausgegeben.
Habe versucht "Deine Zeilen" zu integrieren, aber dann wird mein Programm nicht mehr ausgeführt.
Wichtig ist aber erst mal, daß cgi vom html aufgerufen wird.
Aber wie gesagt, die Anzahl der Zeichen wird nicht ausgegeben?
bieber
 2007-07-03 09:13
#243 #243
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
poste bitte nochmal den neuen Quellcode von dir (.html und .pl)

man kann schlecht erraten wo der Fehler ist ;)
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2007-06-29 14:36.