IIS4-Problem
Thomas Berger
ThB.com at t-online.de
Di Aug 18 18:37:33 CEST 1998
Cord Veltkamp wrote:
>
> Herr Loenarz (Loenarz at mnd.fh-wiesbaden.de) schrieb an mich direkt:
>
> > wir nutzen seit einiger Zeit Ihre gute Allegro-WWW Schnittstelle mit einer
> > Allegro-Datenbank um unsere Diplomarbeiten im INternet zu veröffentlichen.
> > Wir nutzen Windows NT 4.0 Server mit dem IIS 3.0
> > Leider mußten wir nun auf den IIS 4.0 umsteigen, was natürlich zu Problemen
> > führte. Ihren Hinweis bei 3.0 in der Registry aktiv zu werden hat uns sehr
> > geholfen.
> > Haben Sie Erfahrung mit dem IIS 4.0 - oder was raten Sie uns ?
>
> Tut mir leid. Wir haben hier keine Erfahrungen mit IIS 4.0 und mir fehlt jetzt
> auch die Zeit, mich mit diesem Problem zu befassen. Aber vielleicht kann ein
> versierter NT-Anwender unter den allegro-Experten Ihnen helfen. Das Problem
> ist sicher von breitem Interesse.
> Meine spontane Idee (ohne das Problem zu kennen) waere, die fuer den IIS 3
> noetigen AEnderungen wieder rueckgaengig zu machen.
>
> Es gibt vermutlich ein Problem zwischen IIS4 und Perl. Sie koennten unter den
> FAQ's zu Perl und IIS suchen. Auch dort gibt es Mail-Listen.
> Als letzte Moeglichkeit bleibt immer noch den Umstieg auf einen weniger
> kritischen Server, z.B. XITAMI (->allegro-CD ).
Leider wird das Problem nicht so recht klar.
Nach meinen Erfahrungen ist der IIS 4.0 auch nicht problematischer
oder spezieller als andere Webserver.
Typische Problemstellen sind, der Reihenfolge nach:
- Falls der Server unter NT als Service
laueft, ist es ein anderer User als der
Administrator. Hier muessen die Zugriffsrechte
auf den realen Verzeichnissen stimmen.
- Ist das virtuelle Verzeichnis fuer das
Ausfuehren von Scripte konfiguriert?
(das hat NICHTS mit den Rechten auf den
Realen Verzeichnissen zu tun).
- Wird Perl vom Webserver gefunden?
* XITAMI z.B. erwartet es im Suchpfad
* die Microsoft-Familie in der Registry
(Online-Hilfe des Servers lesen: "ScriptMap"!)
! Es ist aber immer (?) ein Schluessel in
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3Svc\Parameters\Scriptmap
dort ist ein Zeichenfolgenschluesselpaar
.pl -> "c:\perl\bin\perl %s %s"
einzutragen (oder wo auch immer Perl ist)
* bei anderen kann man es direkt konfigurieren
- Wird das Perlskript im richtigen Verzeichis
gestartet?
Das ist bei allen Servern eigentlich das Verzeichnis,
wo das Skript liegt, ausser bei XITAMI, wo man dieses
Verhalten erst als Option ankreuzen muss.
Fuer acwww25 sollte dies aber egal sein, weil hier
die Verzeichnisse beim Start explizit gewechselt werden,
wenn ich mich recht entsinne.
- Alle Server verhalten sich unterschiedlich, wenn
vor der Ausgabe der http-Header durch das CGI-Programm
Warnings ausgegeben werden. Dies kann zu Fehlermeldungen
Dies kann man beeinflussen durch:
* sauberere Programmierung (vorzugsweise)
* Einstellen des sog. CGI-Debug-Modus bei manchen
Servern
* Entfernen des "-w"-Schalters in der ersten
Zeile des CGI-Skripts (deprecated).
Tip: Die Scripten von der Kommandozeile aus zu
testen spart sehr viel Aerger. Leider geht das
mit acwww25 nicht auf Anhieb. Ich empfehle daher
(nicht getestet) folgende Modifikation in der
cgi-lib.pl In der Prozedur ReadParse (direkt
am Anfang), und zwar hinter den Zeilen
# Read in text
if ($ENV{'REQUEST_METHOD'} eq "GET") {
$in = $ENV{'QUERY_STRING'};
} elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
for ($i = 0; $i < $ENV{'CONTENT_LENGTH'}; $i++) {
$in .= getc;
}
}
ergaenzen Sie bitte die folgenden Zeilen:
else { # interaktive Parameterabfrage an Kommandozeile...
@myin = <STDIN>;
$in = join ("&", @myin);
$in =~ s/\s+$//;
$in =~ s/\s+\&/\&/;
$in =~ s/\s/\+/g;
}
Nach dieser Aenderung kann man aus dem CGI-Verzeichnis
das gewuenschte Script per Hand aufstarten und dann
zeilenweise Paare von Werten eingeben:
index=PER
s1=tucholsky
...
Abschluss dann mit <Strg>-Z
HTH
Thomas Berger
Mehr Informationen über die Mailingliste Allegro