www.alexander-merz.com | Alexander Merz

java.lang.UnsatisfiedLinkError: ... php5\\bin\\php5.dll

Beim Einsatz von Tomcat 5.5 und PHP unter Windows kann es zu einer Fehlermeldung kommen, dass PHP seine DLLs nicht findet. Konkret geht es um Fehlermeldungen der Art:

java.lang.UnsatisfiedLinkError: C:\\tomcat\\jsr223\\php5\\bin\\php5.dll:
Can't find dependent libraries
...
at com.sun.script.php.PHPBridge.<clinit>(PHPBridge.java:15)

Wichtigste Regel in solchen Fällen: Unbedingt darauf achten, dass Pfadangaben in Konfigurationsdateien unbedingt absolut sind! Das gilt gerade für die extension_dir-Direktive in der php.ini.

In dem mir vorliegenden Fall lag das Problem aber woanders. Anscheinend weichen die Pfad-Konfigurationen von Tomcat 5.0 und Tomcat 5.5 voneinander ab.

Mit Hilfe des Programms fileman von www.sysinternals.com konnte die Ursache schnell ermittelt werden: Der Versuch der DLL php5.dll, die DLL php5ts.dll zu laden, scheitert. Obwohl letztere im gleichen Verzeichnis liegt und dieses Verzeichnis auch in der PATH-Umgebungsvariable angegeben wurde. Die Lösung bestand darin, die DLL php5ts.dll in das bin-Verzeichnis der Tomcat-Installation zu kopieren.