DLL-PHP EXT wird nicht geladen.. es scheint auch keine Ausgabe im Log zu geben

Liebe alle

Ich versuche schon ewigs in IPS eine „externe“ DLL zu laden. Ich habe die php_.dll in den ext ordner kopiert… dann in der php ini direkt im Symcon verzeichnis mit extension auf diese verwiesen mit extension="php_.dll" und im IP-Symconverzeichnis auch noch die *.dll gleichen namens reinkopiert. Wenn ich den Dienst starte sehe ich im Log im gegensatz zu früher keine Fehler oder Info zum Ladevorgang…? (Früher war ja mit ERweiterung failed load oder so etwas debugging möglich)

Die php_info oder die get_loaded_extensions zeigt nicht, dass die DLL geladen wäre. Wie kann man da mehr Debuggen oder was könnte der Fehler sein? Jemand eine Idee?

NAchtrag… das hier habe ich noch gefunden und auch probiert aber ging nicht… ich nehme an das ging nur früher oder nur für Core PHP DLLs

„Es geht auch so.
Wenn man ein Extension braucht die man nicht hat.
Mit einem Texteditor eine Datei erstellen mit dem Namen der Extension.
Sie muss mindestens 1 Byte haben.
Und dann ein Liveupdate machen.“

Um was für eine Extension handelt es sich denn? Stimmt die PHP Version exakt überein?

paresy

PHP-Version passt vermutlich eher nicht… aber dann war ich mir eben gewohnt das im Log entsprechend was steht wonach ich dann suchen kann. es geht um die php_libsodium.dll … im aktuellen Download ort sehe ich nur 5.6 und nicht so viele Details wie 5.6.17 die ich wohl exakt brauche

Habe auch noch auf der offiziellen PHP Seite geschaut und Links hier aus den Foren durchgeklickt aber finde nirgends eine exaktere Version als 5.6 der DLL. Fehler im Log erhalte ich nie aber auch keine Erfolgsmeldung zum Ladevorgang - sofern dieser erfolgt. Komme hier im Moment nicht weiter ausser jemand anders hat die DLL schon im Einsatz erfolgreich und kann mir da etwas unter die Arme greifen.

Wenn alles korrekt ist, dann sollte die dll in der php.ini erscheinen. Und du solltest über phpinfo(); sehen, dass die Extension auch geladen wurde.

paresy

Ok… ja das hab ich so probiert. In der PHP.Ini bleibt es drin aber mit phpinfo wie unten erwähnt seh ich das Modul nicht. Aber ja ich wollte eigentlich nur kurz schauen ob ich Threema gleich zum laufen kriege aber will irgendwie nicht. Komisch ist auch, dass die schreiben die crypto Dinge laufen mit den PHP-Core Funktionen ohne die DLL (reine Geschwindigkeitsfrage), aber trotzdem erhalte ich immer die Meldung das keine Crypto-Engine vorhanden ist. Core mcrypt zbsp sehe ich wird geladen und ist in der PHPInfo auch ersichtlich.

Vielleicht habe ich es übersehen, aber über welche IPS-Version und welches OS geht es?
Michael

Ips 4.1, OS win 10 (Signatur) :slight_smile: hallöchen zweiter Michael

Gesendet von iPhone mit Tapatalk

Also warum es mit den Core PHP Crypting librarys nicht geht weiss ich schon mal… das würde nur mit PHP - 64Bit gehen. Wir haben 32 bei IPS wie ich grad sehe. Ohne die Library wird das somit nix. Dort gibt es noch den Check ob die DLL geladen ist mit

var_dump([
\Sodium\library_version_major(),
\Sodium\library_version_minor(),
\Sodium\version_string()
]);

  • Dieser fällt bei mir negativ aus also - undefinied function - somit sicher nicht geladen unter PHP.

Die hier sollte gehen: http://windows.php.net/downloads/pecl/releases/libsodium/1.0.6/php_libsodium-1.0.6-5.6-ts-vc11-x86.zip

Dabei muss libsodium.dll im IP-Symcon Hauptorder und die php_libsodium.dll in den Ext Ordner rein.

paresy

Hallo Michael 1, ja mittlerweile konnte ich es selbst lösen und es läuft.

Bei meinem letzten Post wurde es mir plötzlich klar… ich hab PHP32 Bit bei IPS… aber eine 64 Bit Maschine und 64 BIT OS… heruntergeladen habe ich immer die 64 BIT Version der DLL… drumm gings nicht. Version etc. passte. Zwei Fragen aber hätt ich :-)=

  • Gibt es denn die Möglichkeit im Log wieder einen Fehler auszugeben wenn eine DLL nicht sauber geladen wird?
  • Empfiehlt ihr die Threadsichere oder unsichere Variante der DLL’s?

PECH war dann natürlich auch noch… das die Threema immer davon schwaffelt das es ja auch mit core technik läuft… ja aber im Quellcode findet man dann später heraus nur unter PHP 64 Bit… was hier halt eben nicht der Fall ist/war.

Es muss 32 Bit + Thread Safe sein.

paresy

Eine letzte Frage… dann geb ich sicher ruhe… in der Anleitung heisst man soll mit der php exe folgendes machen um die SChlüssel zu generieren. Die PHP exe wie auch die PHP-Win exe geben mir einen Fehler aus wenn ich das so ausführe… ein letzter Tipp um die Schlüssel zu generieren? (Vermutlich geht es dann auch über die scripts direkt mit create und ausführen aber nimmt mich wunder was da nicht passt, bin aber ne php lasche)

php threema-msgapi-tool.php -g privateKey.txt publicKey.txt

Fehler lautet dann Prozedureinstiegspunkt „php_body_write“ kann nicht gefunden werden in Dll. Gemäss Anleitung müsste es mit php unter windows so klappen. Die threema-msgapixxx.php ist natürlich ein php generatorfile von Threema aus dem SDK.

:wink: die letzte Frage hat sich soweit auch erledigt und habe einen Umweg gefunden. Danke und Gruss

Gesendet von iPhone mit Tapatalk