Php System() funktioniert nicht
Hallo Leute,
wie der Titel des Threads schon aussagt, geht bei mir die system() Funktion von php nicht und weiss leider nicht mehr weiter.
Zunächst ein paar Fakten:
Ich habe einen V-Server gemietet auf dem Plesk läuft und möchte hier FOP (=formatting object processor) verwenden um eine pdf-Datei zu erzeugen.
Um diesen FOP zu verwenden benötige ich allerdings eine .fo - Datei die durch den Saxon Prozessor erzeugt wird - Und hier kommen wir zum Problem.
Der Saxon funktioniert folgendermaßen:
$saxon9 ="java -jar saxon9he.jar ".xml-Datei" ".xsl-Datei";
system($saxon9);
Auf dem XAMPP auf meinem Home PC funktioniert alles wie es soll und es wird durch diesen Befehl eine .fo Datei erzeugt. Auf dem V-Server leider nicht und ich weiss nicht warum und das witzige ist, wenn ich $saxon9 ausgebe und 1:1 in die cmd eingebe wird die .fo-Datei erzeugt.
Kennt jemand das Problem oder vermutet einen Fehler ??
Nochmal zum Verständnis:
Aus der xml und xsl soll eine fo gemacht werden, anschließend wird eine pdf daraus.
xsl -----> .fo ----> pdf
xml----->
Vielen Dank für jede hilfreiche Antwort !
Gruß DrBommel
wie der Titel des Threads schon aussagt, geht bei mir die system() Funktion von php nicht und weiss leider nicht mehr weiter.
Zunächst ein paar Fakten:
Ich habe einen V-Server gemietet auf dem Plesk läuft und möchte hier FOP (=formatting object processor) verwenden um eine pdf-Datei zu erzeugen.
Um diesen FOP zu verwenden benötige ich allerdings eine .fo - Datei die durch den Saxon Prozessor erzeugt wird - Und hier kommen wir zum Problem.
Der Saxon funktioniert folgendermaßen:
$saxon9 ="java -jar saxon9he.jar ".xml-Datei" ".xsl-Datei";
system($saxon9);
Auf dem XAMPP auf meinem Home PC funktioniert alles wie es soll und es wird durch diesen Befehl eine .fo Datei erzeugt. Auf dem V-Server leider nicht und ich weiss nicht warum und das witzige ist, wenn ich $saxon9 ausgebe und 1:1 in die cmd eingebe wird die .fo-Datei erzeugt.
Kennt jemand das Problem oder vermutet einen Fehler ??
Nochmal zum Verständnis:
Aus der xml und xsl soll eine fo gemacht werden, anschließend wird eine pdf daraus.
xsl -----> .fo ----> pdf
xml----->
Vielen Dank für jede hilfreiche Antwort !
Gruß DrBommel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 163835
Url: https://administrator.de/forum/php-system-funktioniert-nicht-163835.html
Ausgedruckt am: 09.04.2025 um 03:04 Uhr
10 Kommentare
Neuester Kommentar
guten abend,
ich vermute mal, dass das mit der php.ini zu tun hat weil bei xampp so gut wie alles aktiviert ist um bestmögliche kompatibilität zu gewärleisten.
Bei produktiven Webserver sind standartmäßig die meisten module deaktiviert zwecks der sicherheit.
Aber ich gehe mal davon aus das du root zugang zum server hast, was dir ermöglicht die php.ini anzupassen
klick dich am besten mal durch php.net und prüfen was da über deine funktionen steht, da wird auch meistens gleich erläuter wo du in der php.ini schauen musst
grüße
ich vermute mal, dass das mit der php.ini zu tun hat weil bei xampp so gut wie alles aktiviert ist um bestmögliche kompatibilität zu gewärleisten.
Bei produktiven Webserver sind standartmäßig die meisten module deaktiviert zwecks der sicherheit.
Aber ich gehe mal davon aus das du root zugang zum server hast, was dir ermöglicht die php.ini anzupassen
klick dich am besten mal durch php.net und prüfen was da über deine funktionen steht, da wird auch meistens gleich erläuter wo du in der php.ini schauen musst
grüße
Moin moin,
Darf der Webserver überhaupt auf die Java-Ausführungsdatei zugreifen bzw. in das Ziel schreiben - Zugriffsrechte.
Funktioniert der Aufruf der Funktion system() den generell überhaupt auf dem Server !?
Was gibt system() den zurück - Rückgabewerte; var_dump()
Mehr kann ich wohl auch nicht Helfen...
Ist das jetzt eigentlich ein Windows oder Linux Server !?
~Arano
Darf der Webserver überhaupt auf die Java-Ausführungsdatei zugreifen bzw. in das Ziel schreiben - Zugriffsrechte.
Funktioniert der Aufruf der Funktion system() den generell überhaupt auf dem Server !?
Was gibt system() den zurück - Rückgabewerte; var_dump()
Mehr kann ich wohl auch nicht Helfen...
Ist das jetzt eigentlich ein Windows oder Linux Server !?
~Arano
"Der Befehl "C:\Program " ist entweder falsch geschrieben oder konnte nicht gefunden werden"
Anführungszeichen setzen (oder vorher
chdir
machen):system('"C:\\Program Files\\java\\java.exe" ...');
über php wird der system-Befehl nicht ausgeführt.
Das sollten wir erstmal prüfen.
Leg dir den Code hier als test.vbs irgendwo hin und ruf ihn mit PHP auf.
Wenn er aufgerufen wurde muss danach was in der Windows Ereignisanzeige stehen.
Const EVENT_SUCCESS = 0
Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.LogEvent EVENT_SUCCESS, "Ich wurde aufgerufen!"