Perl und OmniHTTPd
Cheatah
0 Erik Tews0 Stefan Muenz0 Cheatah0 Frank Schönmann0 Cheatah
0 Stefan Muenz0 Cheatah
Hallo,
ich habe mir OmniHTTPd und einen Perl-Interpreter eingerichtet, habe aber Probleme mit den lokalen Pfaden. Im Script sage ich beispielsweise, eine Logdatei soll unter "/www/cheatah/cgi-bin/datei.txt" liegen. Wo muß ich in OmniHTTPd jetzt was einstellen, damit die Datei im richtigen Verzeichnis meiner Platte geschrieben wird? Ich habe schon alle mir logisch (oder zumindest möglich) erscheinenden Einstellungen versucht, aber ohne Erfolg!
Danke schon mal an alle,
Cheatah
Hallo,
ich habe mir OmniHTTPd und einen Perl-Interpreter eingerichtet, habe aber Probleme mit den lokalen Pfaden. Im Script sage ich beispielsweise, eine Logdatei soll unter "/www/cheatah/cgi-bin/datei.txt" liegen. Wo muß ich in OmniHTTPd jetzt was einstellen, damit die Datei im richtigen Verzeichnis meiner Platte geschrieben wird? Ich habe schon alle mir logisch (oder zumindest möglich) erscheinenden Einstellungen versucht, aber ohne Erfolg!
Wenn ein / am Anfang steht, sieht das für Mich nach Unix aus. Entweder ein Linux einrichten, oder was wie C:\datei eingeben.
Hi,
Wenn ein / am Anfang steht, sieht das für Mich nach Unix aus. Entweder ein Linux einrichten, oder was wie C:\datei eingeben.
das Script wird normalerweise auf einem Linux-Rechner ausgeführt, deswegen ist der Pfad tatsächlich "/www/...". Wo gebe ich bei meinem OmniHTTPd ein, daß er wenn er auf "/www/..." trifft das Verzeichnis "C:..." nehmen soll?
Cheatah
Hi,
Wenn ein / am Anfang steht, sieht das für Mich nach Unix aus. Entweder ein Linux einrichten, oder was wie C:\datei eingeben.
das Script wird normalerweise auf einem Linux-Rechner ausgeführt, deswegen ist der Pfad tatsächlich "/www/...". Wo gebe ich bei meinem OmniHTTPd ein, daß er wenn er auf "/www/..." trifft das Verzeichnis "C:..." nehmen soll?
Also, du nimmst dir Notepad, und änderst einfach die Zeile auf C:\verzeichnis ab. Alternativ kannst du dir auch ein kostenloses Linux einrichten. Es beansprucht nicht so viel Hardware. Du könntest auch einfach aus einem 386 einen Server machen, und das Script dann auf ihm wie bei deinem Provider austesten.
Hi,
Also, du nimmst dir Notepad, und änderst einfach die Zeile auf C:\verzeichnis ab.
das wird wohl die einzige Lösung sein... in über einem Dutzend Scripts! Und vor dem Upload nicht vergessen, alles wieder zurückzuändern... :-/
Alternativ kannst du dir auch ein kostenloses Linux einrichten.
Negativ: Auf meiner Platte sind noch schlappe 50 MB frei (Tendenz fallend).
»» Es beansprucht nicht so viel Hardware. Du könntest auch einfach aus einem 386 einen Server machen, und das Script dann auf ihm wie bei deinem Provider austesten.
Hast Du zufällig einen für mich? ;-)
Jedenfalls danke für Deine Antwort. Ich denke, ich habe die Lösung (die mir nicht gefällt) in euren beiden (Deins und Franks) Postings gefunden und werde sie zwangsläufig umsetzen müssen...
Cheatah
Hi
das wird wohl die einzige Lösung sein... in über einem Dutzend Scripts! Und vor dem Upload nicht vergessen, alles wieder zurückzuändern... :-/
Es gibt doch einer (und nicht der einzige) Text-Editor der mehrere geöffnete Dateien nach "blabla" dursucht und in "jeeeeeee" ändert, und der heisst UltraEdit32 und ist ziemlich gut.
Viel Spass beim ändern,
Slobo
Hallo Cheatah,
Im Script sage ich beispielsweise, eine Logdatei soll unter "/www/cheatah/cgi-bin/datei.txt" liegen. Wo muß ich in OmniHTTPd jetzt was einstellen, damit die Datei im richtigen Verzeichnis meiner Platte geschrieben wird?
Wieso willst Du dazu irgendwas im Server einstellen? Was aus Windows-Betriebssystemsicht \www\cheatah\cgi-bin\datei.txt und aus Perl-Sicht /www/cheatah/cgi-bin/datei.txt ist, ist aus Server-Sicht einfach so was wie http://127.0.0.1/cgi-bin/datei.txt
Vielleicht verstehe ich auch einfach nicht, was Du genau meinst bzw. erreichen willst. Kannst es dann ja noch mal naeher beschreiben.
viele Gruesse
Stefan Muenz
Hi Stefan,
Vielleicht verstehe ich auch einfach nicht, was Du genau meinst bzw. erreichen willst. Kannst es dann ja noch mal naeher beschreiben.
klar, kann ich:
Im Script wird z.B. auf eine Datei zugegriffen mit:
$datei = "/www/cheatah/cgi-bin/datei.txt";
Diese Definition ist für die Lauffähigkeit im Internet notwendig, deshalb kann ich sie nicht ändern. Nun will ich das Script aber auch lokal auf meinem Rechner unter OmniHTTPd laufen lassen. Dabei steht "datei.txt" aber nicht unter "/www/...", sondern unter "c:\programme...". Was ich jetzt möchte ist, daß OmniHTTPD alle Zugriffe auf "/www/..." umleitet (Alias?!) auf "c:\programme..."
Wo muß ich das einstellen?
Der Perl-Interpreter (/usr/bin/perl5.003) wird korrekt gefunden (c:\programme\netz\perl\bin\perl.exe), aber dafür gibt es auch eine spezielle Eingabemöglichkeit in den Properties. Jetzt fehlt nur noch die Umleitung der Dateien innerhalb der Scripts. Bei "Alias" habe ich schon alles probiert, bis hin zur Nennung jeder(!) einzelnen Datei.
Hilfe...?!
Cheatah
hi!
Im Script wird z.B. auf eine Datei zugegriffen mit:
$datei = "/www/cheatah/cgi-bin/datei.txt";
Diese Definition ist für die Lauffähigkeit im Internet notwendig, deshalb kann ich sie nicht
ändern. Nun will ich das Script aber auch lokal auf meinem Rechner unter OmniHTTPd
laufen lassen. Dabei steht "datei.txt" aber nicht unter "/www/...", sondern unter
"c:\programme...". Was ich jetzt möchte ist, daß OmniHTTPD alle Zugriffe auf "/www/..."
umleitet (Alias?!) auf "c:\programme..."
Wo muß ich das einstellen?
Das funktioniert nicht. Du kannst im Server wohl nur ein Alias für Pfade auf dem WWW-Server einrichten, was anderes wäre auch ziemlich sinnlos. Zum Beispiel kannst du damit einstellen, dass das Verzeichnis http://server/ für das Verzeichnis c:\server\www\ steht, und http://server/cgi-bin/ für das Verzeichnis c:\server\cgi, also auch wenn die physikalische Verzeichnisstruktur auf der Festplatte nicht der logischen Struktur auf dem Server entspricht.
Perl-Skripts greifen aber direkt auf die Festplatte zu, nicht über den Server! Der Server hat also mit dem Zugriff des Perl-Skripts auf die Daten nicht das geringste zu tun, das müsstest du system-intern einstellen, was aber mit Windows nicht möglich ist (mit Linux oder Unix zb. schon ;)).
Warum baust du den Pfad nicht am Anfang des Skripts als Skalar ein und greifst darauf zu. Dann musst du vor dem Upload auf den Server nur noch den Pfad korrekt setzen. Oder du legst auf deiner Platte die gleiche Verzeichnisstruktur an, die auch auf dem Server existiert.
bye, Frank!
Hi Frank,
danke für Deine Antwort, auch wenn sie nicht dem entspricht, was ich erhoffte. Ich werde wohl meine Scripts kräftig umschreiben müssen...
Cheatah
Hallo Cheatah,
Diese Definition ist für die Lauffähigkeit im Internet notwendig, deshalb kann ich sie nicht ändern. Nun will ich das Script aber auch lokal auf meinem Rechner unter OmniHTTPd laufen lassen. Dabei steht "datei.txt" aber nicht unter "/www/...", sondern unter "c:\programme...".
Also um solche Probleme zu vermeiden, habe ich einfach auf dem eigenen Rechner die gleiche Verzeichnisstruktur angelegt wie auf dem Server im Internet, und solange ich nicht mit absoluten URL-Adressen arbeite, kann ich lokal mit 127.0.0.1 alles genau so austesten wie es auf dem Server laufen soll.
viele Gruesse
Stefan Muenz
Hi Stefan,
Also um solche Probleme zu vermeiden, habe ich einfach auf dem eigenen Rechner die gleiche Verzeichnisstruktur angelegt wie auf dem Server im Internet, und solange ich nicht mit absoluten URL-Adressen arbeite, kann ich lokal mit 127.0.0.1 alles genau so austesten wie es auf dem Server laufen soll.
jo, danke... auch mit dem Gedanken spiele ich! Und statt der IP-Adresse nehme ich gewöhnlich "localhost" ;-)
Cheatah