(PERL) Omnihttpd in WinXX Testumgebung
Erwin
- webserver
Moin,
tschahh, so wie's aussieht wirds den OmniHTTPd (last release 2.10, expired 1.1.2004) wohl nicht mehr für Umme geben wie bisher.
Aber da ich mein privates CGI - Gedöhnse immer noch auf meinem uralten Blechle unter win98 entwickle und gerne einen Webserver verwende dem bei CGIs eine Shebang like
#!/usr/bin/perl
egal ist, ziehts mich halt immer wieder zum OmniHTTPd.
Egal muss weil: Vor dem Upload habch keine Lust da nochmal einzugreifen...
Untenstehendes PERL Script setzt nicht nur das Datum zurück auf einen Wert wo dieser Server noch funktional ist und startet diesen, es wird auch die hosts - Datei für die lokale Umgebung angepasst.
Das Script selbst bleibt nach dem Start solange im Hintergrund bis der OmniHTTPd beendet wird, danach wird der alte Zustand wiederhergestellt.
Viel Spass damit, Erwin
=switchenv.pl
my $file = 'c:/tmp/date';
my $xdate = '12.12.2003';
###########################################################################
use strict;
# aktuelles Datum ermitteln
use POSIX qw(strftime);
my $date = strftime("%d.%m.%Y", localtime);
# aktuelles Datum in die Datei schreiben zum sichern
open OUT, ">c:/tmp/date" or die $!;
print OUT $date;
close OUT;
qx(date $xdate);
#print "aktuelles Datum: $xdate\n";
# virtual host in hosts - File eintragen
open OUT, ">c:/windows/hosts" or die $!;
print OUT "127.0.0.1 i-netlab.de";
close OUT;
# webserver starten
print "Locale Testumgebung mit Webserver...\n";
system("c:\httpd\ohttpd.exe");
# alten zustand wiederherstellen
open IN, $file or die $!;
my $olddate = <IN>;
close IN;
qx(date $olddate);
#unlink $file;
# hosts file - alter zustand...
open OUT, ">c:/windows/hosts" or die $!;
print OUT "127.0.0.1 localhost # i-netlab.de";
close OUT;
exit;
###########################################################################
=cut
Halihallo Erwin
Aber da ich mein privates CGI - Gedöhnse immer noch auf meinem uralten Blechle unter win98 entwickle und gerne einen Webserver verwende dem bei CGIs eine Shebang like
#!/usr/bin/perl
egal ist, ziehts mich halt immer wieder zum OmniHTTPd.
I wo! - Auch den Apachen kann man mit Leichtigkeit davon überzeugen, dass Perl nicht in X:\usr\bin\perl.exe liegt.
siehe hierzu: [pref:t=68109&m=390346]:
ScriptInterpreterSource Registry
Empfehlen würde ich sei Apache 2.x:
ScriptInterpreterSource Registry-Strict
Egal muss weil: Vor dem Upload habch keine Lust da nochmal einzugreifen...
Verständlich.
Untenstehendes PERL Script setzt nicht nur das Datum zurück auf einen Wert wo dieser Server noch funktional ist und startet diesen, es wird auch die hosts - Datei für die lokale Umgebung angepasst.
Oh jeh, was für ein Konstrukt. Und du bist sicher, dass dies legal
ist? - Ich habe jetzt keine Lust mich darüber zu informieren, aber
wenn Omicron den Omni nicht mehr gratis als Evaluation anbietet,
dann hat das wohl seine Gründe.
Viel Spass damit
Spass kann man auch ohne Omni haben, glaube mir :-)
Viele Grüsse
Philipp
BTW: Ich erspare mir dieses mühsame und zwecksfremde Coden gerne
durch die Wahl einer guten Software... Die es !sogar! gratis und
völlig legal gibt.
Halihallo Philipp,
schau Dir mal mein obenstehendes Listing an ohne die *Datumsakrobatik*.
Es nimmt Dir immerhin folgendes ab:
.... lokale Testumgebung
und nach Beenden des Webservers:
Und das mit einem einzigen Klick.
You are welcome, Erwin
Halihallo Erwin
Es nimmt Dir immerhin folgendes ab:
- hosts File umschreiben für lokale Testumgebung
Warum? - Mehr dazu folgt...
- webserver starten
tut er bei mir automatisch, muss nicht einmal mehr "klicken".
- hosts File zurückschreiben
Warum rumschreiben?
Schreib doch einfach:
127.0.0.1 i-netlab.de
127.0.0.1 localhost
rein. Oder funktioniert das nicht? - Optional kannst du auch einen
neuen "VirtualHost" (etwas äquivalentes gibts bei Omni, weiss aber
den Namen nicht mehr) für i-netlab.de definieren, mit gleichem
DOCUMENT_ROOT, aber auf die IP 127.0.0.2 hörend => dann entsprechend
in die hosts Datei einfügen.
Fertig. ggf. den Omni noch in Autostart und du kommst ganz ohne
Klicks und Tricks aus.
Viele Grüsse
Philipp
hi
Schreib doch einfach:
127.0.0.1 i-netlab.de
rein. Oder funktioniert das nicht? - Optional kannst du auch einen
genau das macht mein switch.
Und der nimmt den Eintrag
127.0.0.1 i-netlab.de
auch wieder raus. Damit's auch online klappt mit der Domain ;-)
Das ist der Sinn des Listings: Es gibt 2 Zustände
online
offline
ach , ich hör jetzt auf das auch noch zu erklären.
Schönen Tag noch, Erwin