Warum spuckt PHP V8Js über Command-Line folgendes aus?

4 Antworten

Offensichtlich ergänzt der DLL-Loader die Namenserweiterung ".dll" selbständig, ihm wurde aber unüblicherweise nicht beigebracht, das nur zu tun, wenn die Endung ausgelassen wurde.

Nimm mal in der .ini-Datei die Endung weg:

extension=php_v8js

Keine einzige Erweiterung trägt die Endung: dll. Das hatte mich schon gewundert. Aber ich hatte dies aus einer anderen INI-Datei so übernommen. Der Fehler existiert zwar immer noch, aber die Fehlerausgabe ist nun in Ordnung:

###

C:\xampp\php>php --ini

PHP Warning: PHP Startup: Unable to load dynamic library 'php_v8js' (tried: C:\xampp\php\ext\php_v8js (Das angegebene Modul wurde nicht gefunden.), C:\xampp\php\ext\php_php_v8js.dll (Das angegebene Modul wurde nicht gefunden.)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'php_v8js' (tried: C:\xampp\php\ext\php_v8js (Das angegebene Modul wurde nicht gefunden.), C:\xampp\php\ext\php_php_v8js.dll (Das angegebene Modul wurde nicht gefunden.)) in Unknown on line 0

Configuration File (php.ini) Path: C:\WINDOWS
Loaded Configuration File: C:\xampp\php\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:     (none)

C:\xampp\php>

###

Für gute Ideen bin ich weiterhin offen!

0
@Duisenberg

Ach so, das Ding scheint doch auch den direkt angegebenen Dateinamen zu suchen. War die Meldung wirklich so in einer Zeile fortlaufend formatiert? (Falls unter Windows und in Notepad: auch in WordPad?) Sonst wäre es nett gewesen, wenn du die Liste auch als Liste eingestellt hättest.

Kennst du dich mit Betriebssystemen, Dateisystemen und Tools ein klein wenig aus?

Falls nein: Kopier die fragliche Datei mal an den angegebenen Ort ("C:\xampp\php\ext\").

Falls du nicht weißt, wie du diese Datei ("php_v8js.dll") findest: dann wird es etwas länger.

0
@PWolff

Ja, das zwischen den ### /* ... */ ### Rauten (s. o.) ist die Ausgabe auf der Command Line. Ich habe die Datei (php_v8js.dll) in das Verzeichnis: c:/xampp/php/ext kopiert. Sie ist also vorhanden. Und phpinfo(); gibt auch aus, dass die Extension bereit steht. Und das Parsten funktioniert auch auf der Server-Ebene. Ich kann ein HTML-Dokumen serverseitig einlesen und den darin enthaltenen Javascript-Code auch serverseitig verarbeiten lassen. Nur die Prozesse, die im Folgeschritt über popen(); asynchrom ausgeführt werden sollen, scheitern auf der Command-Line wegen dieses komischen Fehlers. Hier ran kann es nicht liegen: extension_dir="C:\xampp\php\ext".

0

Habe festgestellt das PHP auf der Command-Line dieselbe php.ini verwendet. Aber auf der Command-Line steht das V8Js nicht zur Verfügung, wie phpinfo() verrät.

c:/xampp/php> php -r "phpinfo();"

Die Ausgabe (siehe Image) ergibt jeweils, dass das File vorhanden ist. Also über den Server, wie auch über das Command-Line-Interface.

Output: File ist lesbar!

 - (Programmieren, PHP, v8JS)

Was möchtest Du wissen?