Von: Wolfgang Schreiber[SMTP:Wolfgang.Schreiber@t-online.de]
Hallo,
ich versuche unter Linux (Suse 6.0) über ein CGI-Script in Perl einen Datenbank-Zugriff auf eine MySQL-Datenbank (3.22.21) zu realisieren. Dazu habe ich Msql-Mysql-modules 1.2017 und DBI 1.07 istalliert.
Wenn ich das Script ganz normal aus irgendeinem Verzeichnis aufrufe klappt es optimal. War ich richtig erfreut, daß ich das hinbekommen habe :-))
Hast Du auch mal versucht als Apache Benutzer das Script auszuführen ? Im Allgemeinen ist das nobody. Es kann auch am nicht vorhandenen Environment liegen - aber wahrscheinlicher sind fehlende Datei/Verzeichnisrechte.
Wenn ich jetzt das Script so umgestalte, daß es eine HTML-Seite ausgibt in der ich die Ergebnisse der Abfrage darstellen will und beginne es über den eine HTML-Seite aufzurufen die ich auf dem lokalen Server abgelegt habe geht nichts mehr.
Ich habe schon begonnen das Script so zu gestalten, daß es zunächst nur eine HTML-Seite ausgibt ohne irgendwelche datenbankspezifischen Befehle und Aufrufe einzubauen und dann habe ich nach und nach versucht in sinnvoller weite die datenbankspezifischen Programmzeilen reinzuschreiben und mir die Ergebnisse in /var/log/httpd.error_log anzusehen, aber das ist meiner Meinung mach so unspezifisch und teilweise auch "blanker Unsinn", so daß ich annehme, daß ich einen grundsätzlichen Fehler mache.
Für das 'Debuging' im CGI Umfeld gibt es ein Modul, das die Perl Interpeter Fehlermeldungen als HTML auf der Standardausgabe rausschiebt. Damit erscheint im Browser eine 'aussagekräftige(re)' Fehlermeldung. Das Modul heißt meines Wissens Carp.
Mit "blanker Unsinn" ist gemeint, daß er Syntaxfehler in Zeilen bemängelt in denen beim Testlauf zuvor noch nix bemängelt wurde und die auch nicht nachvollziehbar sind. Sowas wie "missing right bracket" etc.
Kleiner Ausschnitt am Ende der Mail, falls jemand daraus was ersehen kann.
Also wie gesagt.. ich wüßte sehr gerne, was ich falsch mache und wenn mir das jemand sagen kann.. fänd ich klasse. Oder hat jemand ein Beispielscript mit dem er so einen Zugriff realisiert, das man mit
Heute abend schau ich mal in meine Bücher nach einen Beispiel für dich.
den hiesigen Gegebenheiten ausprobieren könnte?
Thanks und so long.
Wolfgang
Folgt nur noch ein kleiner Ausschnitt aus httpd.error_log
. . . . Use of uninitialized value at /usr/lib/perl5/site_perl/5.005/i586-linux/Apache.pm line 188.
Er findet offensichtloch die Moduledatei als solches. Darf er sie auch lesen ? Darf er alle Includes lesen ?
Teilnehmer (1)
-
Frank Matthieß