Problem mit MariaDB.xs.dll

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Problem mit MariaDB.xs.dll

Postby NetDiver » 21. March 2024 17:55

Hallo liebe XAMPP Freunde,

(kurze Info.: Lokale Entwicklungsumgebung. Win10, Strawberry Perl v5.38.2 built for MSWin32-x64-multi-thread. Xampp 8.2.12 (CP3.3.0))

Ich versuche krampfhaft XAMPP mit Strawberry Perl und MariaDB (von XAMPP) zum laufen zu bekommen.
Meine Perl Scripte laufen, wenn ich sie von der Kommandozeile aufrufe einwandfrei. Wenn über XAMPP/Browser ... dann gibt es folgende Meldung:

install_driver(MariaDB) failed: Can't load 'C:/strawberry/perl/site/lib/auto/DBD/MariaDB/MariaDB.xs.dll' for module DBD::MariaDB: load_file:Das angegebene Modul wurde nicht gefunden at C:/strawberry/perl/lib/DynaLoader.pm line 206.
at (eval 10) line 3.
Compilation failed in require at (eval 10) line 3.
Perhaps a required shared library or dll isn't installed where expected


Die DLL ist im entsprechenden Verzeichnis vorhanden, hab auch schon andere Pfandangaben getestet und die DLL aus lauter Verzweiflung schon in allen möglichen Pfaden verteilt.
Perl Shebang Line ist auch alles ok. Code läuft, nur sobald ich folgendes aufurufe ... knallt es.
Code: Select all
my $dsn = qq{DBI:MariaDB:database=$Parallels$Database;host=$Server};
DBI->connect( $dsn, $User, $Pass );


In den XAMPP Log Files gibt es noch das hier:
AH01215: install_driver(MariaDB) failed: Can't load 'C:/strawberry/perl/site/lib/auto/DBD/MariaDB/MariaDB.xs.dll' for module DBD::MariaDB: load_file:Das angegebene Modul wurde nicht gefunden at C:/strawberry/perl/lib/DynaLoader.pm line 206.\r: X:/...short.../test_LibSQL.pl
AH01215: : X:/...short.../test_LibSQL.pl
AH01215: Compilation failed in require at (eval 10) line 3.\r: X:/...short.../test_LibSQL.pl
AH01215: Perhaps a required shared library or dll isn't installed where expected\r: X:/...short.../test_LibSQL.pl


Aber wie gesagt. In den Verzeichnissen ist das zu finden und auf den Verzeichnissen ist sogar der PATH gelegt.
Reboots, Apache Restarts, Strawberry Neuinstallation .. alles durch.

Hat jemand ein Tipp?
NetDiver
 
Posts: 2
Joined: 21. March 2024 17:36
XAMPP version: 3.3.0
Operating System: Windows 10

Re: Problem mit MariaDB.xs.dll

Postby Nobbie » 22. March 2024 09:43

Wie hast Du Strawberry Perl in Xampp eingebunden?

Ich würde vermuten, dass eine C-Bibliothek von Microsoft nicht gefunden wird, die beim nativen Start von Perl geladen wird, aber beim Start von Apache nicht resp. eine falsche Version. Diese Fehlermeldung tritt nicht nur dann auf, wenn die genannte DLL selbst nicht gefunden wird, sondern eben auch, wenn die MSCVdingsbums DLL nicht geladen werden kann. Ich weiß nicht, mit welchen Releasen von C die einzelnen Komponenten kompiliert wurden.

Wenn Perl als CGI mit Shebang Zeile (1. Zeile a la "#!c:/perl/bin/perl.exe") dann sollte es ggf. funktionieren.

Es kann aber auch sein, dass Xampp Apache mit einem anderen Environment gestartet wird als das native Perl Script. Das Perl Script wird mit Deine (Login) UserID und dem entsprechenden Environment gestartet. Bei Xampp hängt es davon ab, wie Apache gestartet wird. Wenn Du es als Systemdienst startest, wird es NICHT mit Deine UserID sondern mit "System" ausgeführt, der hat ein ganz anderes Environment und eine eigene PATH Variable. Gib mal innerhalb eines Perl Scripts (oder auch PHP Scripts) den Wert der PATH Variablen aus. Bei PHP kannst Du einfach phpinfo() aufrufen, da sollten auch alle Environment Variablen drin stehen.
Nobbie
 
Posts: 13176
Joined: 09. March 2008 13:04

Re: Problem mit MariaDB.xs.dll

Postby NetDiver » 22. March 2024 17:10

Hallo Nobbi, danke für die schnelle Antwort.
Es scheint am DLL Format zu liegen. (Pfade hatte ich alle gecheckt und auch PATH Angaben.)
Shebang zeigt direkt auf die Strawberry Perl Installation und es wird auch die richtige Version im Browser angezeigt. Da scheint also alles ok zu sein.
Xampp selbst wird im Benutzeraccount manuell ausgeführt und nicht als Dienst. Und ich hab sogar Adminrechte und alles Mögliche durchprobiert, gleiches Problem.

Momentan habe ich erstmal als Workaround den Schritt zurück auf Strawberry Perl 5.32 probiert. Damit geht es.
Wäre aber schon cool, das mit 5.38 zum laufen zu bekommen.
In Perl 5.32. macht blöderweise DBD::mysql Probleme. (Wenn man schon mal am testen ist ... #) ... ) Gleiches Problem mit der DLL. Aber DBD::MariaDB funktioniert wenigstens.
NetDiver
 
Posts: 2
Joined: 21. March 2024 17:36
XAMPP version: 3.3.0
Operating System: Windows 10

Re: Problem mit MariaDB.xs.dll

Postby Nobbie » 22. March 2024 20:20

Das sieht alles danach aus, dass ich mit der ersten Vermutung richtig liege. Xampp ist anscheinend mit einem anderen Release VisualC übersetzt worden und inkludiert die Runtime DLL für diese Version. Wenn dann Perl startet, lädt Windows die sinngemäß gleiche DLL nicht nach (Microsoft schießt sich da selbst ins Bein), die für das neuere(?) Perl benötigt wird. Mit einiger Sicherheit ist das ein Kollisionsproblem verschiedener DLL Versionen.
Nobbie
 
Posts: 13176
Joined: 09. March 2008 13:04


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 109 guests