2017-06-30 4 views
0

J'ai une commande imagemagick (qui utilise convert.exe) que je lance avec php shell_exec, mais je reçois un message d'accès refusé.IIS Php accès shell_exec refusé imagemagick

Le serveur est un serveur IIS (Windows).

Que dois-je faire pour que cela fonctionne.

Je dois probablement changer l'autorisation pour convertir.exe, mais comment faire?

Ceci est la commande en cours:

"C:\ImageMagick\convert.exe -background transparent -fill "#004b96" -pointsize 20 label:"Test " C:\\inetpub\\vhosts\\test.de\httpdocs\\storage\\generator\projects\test\menu\img.png 2>&1; echo $?" 

La commande fonctionne si je le lance dans Powershell.

Edit:

J'ai essayé de Victor Leontyev suggérant ci-dessous, mais il ne savait pas encore (voir la section commentaire)

Edit:

Si je tente de sortir la commande avec ceci:

$command = $imagemagickcommand . "2>&1; echo $?" // command 

dd(shell_exec($command)); 

Je reçois null

dd(exec($command)); 

retours "";

Répondre

0

Pour résoudre votre problème, vous devez faire deux étapes

Déterminer l'utilisateur, qui n'a pas accès à convert.exe

temporairement accorder permission de commander whoami. Dans l'invite de commande exécuter cette ligne par ligne:

cd c:\windows\system32 
cacls cmd.exe /E /G everyone:R 
cacls whoami.exe /E /G everyone:R 

Créer whoami.php avec le contenu suivant

<?php 
    $output = shell_exec("whoami"); 
    echo "<pre>$output</pre>"; 
?> 

charge whoami.php sur un navigateur Web et notez le nom d'utilisateur affiché. Ce sera quelque chose comme ça:

xxxxx\yyyyy 

Révoquer l'autorisation "Tout le monde".

cd c:\windows\system32 
cacls cmd.exe /E /R everyone 
cacls whoami.exe /E /R everyone 

autorisation de subvention à cet utilisateur à convert.exe

Dans l'invite de commande exécuter cette commande (où xxxxx\yyyyy est votre utilisateur à l'étape précédente):

cd C:\ImageMagick 
cacls convert.exe /E /G xxxxx\yyyyy:R 
+0

Si je lance 'cacls cmd.exe/E/G tout le monde: R 'Je reçois cette erreur' L'attribution des comptes et avis de sécurité n'ont pas été effectuées »dans cmd – utdev

+0

J'ai donné à chaque utilisateur un contrôle total sous le panneau d'autorisation, mais je reçois toujours cette erreur, tout ide comme à gauche? – utdev

+0

J'ai couru whoami et j'obtiens un nom d'utilisateur x/y puis j'ai essayé de courir cacls convertir.exe/E/G xxxxx \ yyyyy: R avec le nom d'utilisateur mais j'obtiens un accès refusé – utdev