WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PERL / DBI: Umstieg von Linux auf Windows Server (http://www.wcm.at/forum/showthread.php?t=71051)

Uurtyp 23.09.2002 22:29

PERL / DBI: Umstieg von Linux auf Windows Server
 
Hi

Habe Folgendes Problem:
Habe eine Homepage in Perl programmiert, welche das DBI modul verwendet, um auf eine mysql DB zuzugreifen. Das alles auf einem Linuxserver. Ich habe die module installiert und alles funzt einwandfrei.
Nun muss ich leider auf einen WIN server übersiedeln. Allerdings gibts da Probleme.
Anfangs war nat. kein Modul inst. -> Fehlermeldung das das Modul nicht existiert. klar ... dann habe ich per ppm .. das is dieses schwule inst. tool - mal per install DBI dieses Modul erfolgreich - wie der installer meint - installiert.
Mit dem Erfolg, dass ich wenn ich auf eine page gehe, die einen DB zugriff hat, keine Fehlermeldung mehr bekomme, sondern nur noch ne weisse page ohne irgendwas.
Ich finde auch leider kein errorlogfile - wie im linuxrechner - dort schau ich ins httpd logfile und habe alle probs aufgelistet. Im Winrechner - also entweder er schreibt in kein logfile rein, oder ich finds nicht.

Bitte um Hilfe wäre wichtig
Danke schon mal!

mfg
Uurtyp

_m3 23.09.2002 22:46

OK - vorab: DBI/DBD funktioniert auch unter Windows.

Schon mal mit "use CGI::Carp qw(fatalsToBrowser);" probiert? >> http://www.perldoc.com/perl5.6/lib/CGI/Carp.html

Wenn ich mich richtig erinnere, kann man im IIS die Lokation der Logs (auch fehlerlog) definieren). Schau mal genau im Admin-Tool.

Uurtyp 24.09.2002 12:22

hey
danke mal für den tip - werde ich gleich probieren. - vorallem das mit dem log

weil - ich habe bereits einiges mehr herausgefunden.

zum Teil lag es an meiner eigenen blödheit ... habe absolut vergessen beim transferieren auf den winserver die db spezifischen Daten zu ändern. naja - also deswegen kann schon mal gar nichts gehen
jetzt bin ich soweit, dass ich ein kleines hallo welt dummy file geschrieben habe - das funktioniert .. mit PERL.
Schritt für Schritt habe ich den code eingefügt um rauszufinden, wo genau jetzt das Problem liegt.
also ich kam noch über USE CGI, DBI hinweg - die variablen definitionen für die DB haben auch noch hingehaut - aber der sobald ich den connect befehl
my $dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASSWD) or die "Fehler bei Datenbankverbindung: $!";
mit in mein file nehme, bleibt die page weiss.
Kann für mich nur 2 Gründe haben
entweder die Daten stimmen nicht, die ich angegeben habe....
oder mit dem befehl hats was unter windows.
Die daten können eigentlich nur stimmen - wenn ich mit den selben daten per phpMyAdmin auf die mysql DB zugreife funktioniert es ....
also kanns nur noch mit dem Befehl was haben. So interpretiere ich das zumindest.
Ich werde mal nach dem log suchen - vielleicht finde ich ja was brauchbares.

Danke mal soweit - vlt fällt euch dazu noch was ein?
mfg
Uurtyp

_m3 25.09.2002 19:19

Was fuer eine Datenbank? Wie angebunden (direkt, ODBC, ...)?

Uurtyp 26.09.2002 11:20

oook
folgendes

"use CGI::Carp qw(fatalsToBrowser);" bewirkt leider gar nichts.
zu den logfiles ... ich bin nicht der serveradmin - aber der hat in so ca jedes logfile geschaut - und es steht nix adnormes drinnen.

nach echt langem herumprobieren haben wir es geschafft überhaupt einmal eine Fehlermeldung zu erreichen - und zwar wenn wir
"print "Content-type: text/html\n\n";"
auskommentiert haben.
weiters sind wir draufgekommen, dass noch ein mysql package gefehlt hat usw.
Mittlerweile sind wir soweit, dass eine page, mit DB connection UND sogar ner abfrage funktioniert - wer hätte das gedacht. Aber glaube nicht - wir sind ewig gesessen - und im endeffekt hab i keine ahnung warum bei der win schüssel das alles ned gangen ist.
gut - nun zur nächsten seite
sie geht wieder nicht - bin hab alles auskommentiert um rauszufinden an welchem befehlt es liegt.
$param=<STDIN>;
-> wenn der page mit method=post werte übergeben werden ... wie übernehme ich diese?
mit dem Befehl, bleibt zur Abwechslung mal wieder alles weiss. Dazu sollten die Infos zur DB nicht mehr nötig sein oder? falls doch muss ich erst fragen - wie gesagt - bin ned der admin.

plz tell me how to solve my problem :((
thxal
Uurtyp

_m3 26.09.2002 12:36

Also händisch würde ich das nicht machen. Dafür gibt es bereits sehr gute Module.
Ich würd entweder die CGI.pm oder die cgi-lib.pl <http://cgi-lib.berkeley.edu/> verwenden, um die Parameter zu parsen.
Die erkennen automatsich, ob es sich im GEt oder POST Daten handelt und liefern dir alles schön in einem Hash zurück.

CGI.pm hat auhc noch den Vorteil, dass man das Script auch von der Kommandozeile aufrufen kann undihm dort die Parameter spezifizieren kann - suuuper zum Testen.


HTH

Uurtyp 26.09.2002 12:38

ahh ok
na dann werd ich mir die CGI.pm mal ansehen - wo find ich die am schnellsten?

mfg Uurtyp

_m3 26.09.2002 13:13

http://stein.cshl.org/WWW/software/CGI/
http://theoryx5.uwinnipeg.ca/mod_per...h?distinfo=742

Uurtyp 26.09.2002 22:52

super danke
dann werde ich mir das morgen gleich zu gemüte führen - heute ist es mir zu spät ;)
thx jedenfalls

Uurtyp 01.10.2002 23:36

hey cool - ja das funktioniert einwandfrei.

hät da noch eine Frage. Hast vlt - oder jmd anderer - auch ahnung wie ich mir in Perl eine Liste aller files bzw eine Liste aller directories in einem beliebigen DIR ausgeben lassen kann?

Lösung für die Files im aktuellen verzeichnis hab ich .... falls interesse besteht:

@files = glob("*.*");

funzt in win und linux
aber ich find nicht heraus wie ich diesen - oder einen anderen - Befehl anwenden muss, um die files aus einem subdir anzeigen zu können.

Zu den directories hät ich auch nen ansatz - ich bilde mir ein mal was von einem "System()" gehört zu haben. Das man mit dem irgendwie normale Linux ausführen kann - nur wie, ich finds nimma.
und wie geht das unter win?
*helpplz*
*thx*
mfg
Uurtyp


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag