PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nix cgi



Uve
28.03.05, 17:15
Hallo Leute,
wer hat einen Tipp fuer mich?
Warum arbeitet der Browser das cgi auf dem localhost nicht ab?
(apache2 ist gestartet)
Ich moechte aus einer html-Datei eine CGI-Datei starten ...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test zu CGI</title>
</head>
<body>
<center>
<h1>L I N U X</h1>
<form action="/cgi-bin/env.pl" method="post">
</body>
</html>

auf dem /cgi-bin-Verzeichnis steht die env.pl mit folgendem Inhalt:

#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Umgebungsvariablen</title></head><body>\n";
print "<h1>Umgebungsvariablen:</h1>\n";
print "<table border=\"1\">\n";
print "<tr><th align=\"left\" bgcolor=\"#E0E0E0\">Variablenname</th>",
"<th align=\"left\" bgcolor=\"#E0E0E0\">Wert</th></tr>\n";
foreach(keys(%ENV)) {
print "<tr><td><b>$_</b></td><td><tt>$ENV{$_}</tt></td></tr>\n";
}
print "<tr><th align=\"left\" bgcolor=\"#E0E0E0\" colspan=\"2\">insgesamt: ",
scalar keys(%ENV)," Umgebungsvariablen</th></tr>\n";
print "</table>\n";
print "</body></html>\n";
-------------------------------------------------------------------------------------------------
In der httpd.conf habe ich u. a. folgendes definiert:

ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

<Directory "/srv/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

<Location /cgi-bin>
AllowOverride None
Options +ExecCGI -Includes
SetHandler cgi-script
</Location>

AddHandler cgi-script .cgi

-------------------------------------------------------------------------------------------------

Rufe ich env.pl direkt als File im Browser auf, so wird es einwandfrei ausgeführt.
Leider traegt der Browser auch keine Fehlermeldung in der Error_log ein, die mir hier weiterhilft.
Wer hat hier eine Idee und kann mir helfen?
Vielen Dank im Voraus ...

MiGo
28.03.05, 18:39
Also entweder hast Du keine Ahung von Html oder ich.

Aussage laut meinen (besch. html-Kenntnissen):

- Entweder du brauchst ein Redirect uf das perl-script
oder
-Du solltest eine vollständiges Formular verwenden

<form action="/cgi-bin/env.pl" method="post">
<input type="submit" value="Ausführen">
</form>

Wenn du allerdings die Ausgabe des Scriptes in deine HTML-Seite eingeblendet haben willst, müsstest du nach Server side includes (SSI) suchen.

edit: http://httpd.apache.org/docs/howto/ssi.html

Uve
30.03.05, 19:39
Hallo MiGo,

tja, ein vollständiges Formular hilft doch tatsächlich weiter.
Den Weg über SSI werde ich mir ansehen.
Vielen Dank für deine Hilfe.
ciao
Uve