Der Windows-CLI-Befehl wird nicht über IIS, sondern über CLI ausgeführt

2

Ich versuche den folgenden Befehl auszuführen:

"C:\Program Files\ImageMagick-7.0.3-Q16\magick" convert "G:\path\to\filename.pdf[1]" -colorspace RGB -geometry 800 "g:\path\to\temp\filename.png"

Es funktioniert hervorragend, wenn ich es über ausgeführt habe, cmdwährend ich angemeldet bin, aber wenn ich versuche, es über IIS / PHP / exec auszuführen , funktioniert es nicht. Ich erhalte stattdessen den folgenden Fehler:

convert: no images defined `g:\path\to\temp\filename.png' @ error/convert.c/ConvertImageCommand/3254.

Ich habe g:\path\to\tempIUSR, IIS_USERS, ANONYMOUS LOGIN und Jedermann die Vollzugriffsberechtigung erteilt. Nichts funktioniert.

Ich tue exec('echo %username%')und sehe, dass der aktuell über IIS angemeldete Benutzer ist, COMPUTER$aber das hilft mir nicht wirklich.

bearbeiten:

Ich habe „Jeder“ Vollzugriff die Erlaubnis gegeben , in C:\Program Files (x86)\gs\gs9.09\binund C:\Program Files\ImageMagick-7.0.3-Q16und immer noch die gleiche Sache zu bekommen.

2 bearbeiten:

An alle, die meine Frage als Duplikat von " PDF kann nicht in Bild konvertiert werden" gekennzeichnet haben, da der Fehler "Keine Bilder definiert" vorliegt ... dies ist nicht der Fall. Erstens verwende ich Windows - nicht Linux - also which gsfunktioniert es offensichtlich nicht. Zweitens convertfunktioniert es in meinem Fall einwandfrei, wenn ich es über cmd.exe ausführe. Aber wenn ich versuche, es über IIS / PHP / exec () auszuführen, funktioniert es nicht. Bei der anderen Frage hat es überhaupt nicht funktioniert. Zeitraum.

3 bearbeiten:

Ich habe auch versucht, einen neuen Anwendungspool mit "LocalSystem" per https://stackoverflow.com/a/23046001/569976 zu erstellen . Nichts.

neubert
quelle
Warum fängt man `g:\path\to\temp\filename.png'mit einem Backtick an?
DavidPostill
Und warum endet das "g:\path\to\temp\filename.png"`mit einem Backtick?
DavidPostill
Es gibt ein Backtick am Ende des ersten Befehls in Ihrem Beitrag ...
DavidPostill
@DavidPostill - Fang den Backtick in dem Befehl, den ich ausgegeben habe. Ich habe es entfernt, erhalte aber den gleichen Fehler. Ich habe keine Ahnung, warum es in der Ausgabe ist.
Neubert
Versuche es mit -debug all
Adam Silenko

Antworten:

0

Ich habe dies funktioniert, indem ich nur WAMP installiert habe. Daher wird IIS auf Port 80/443 und WAMP auf Port 81/444 ausgeführt.

neubert
quelle