2017-06-30 30 views
0

私はPHPのshell_execで実行するimagemagickコマンド(convert.exeを使用)を持っていますが、アクセス拒否メッセージが表示されます。IIS php shell_execアクセスがimagemagickを拒否しました

サーバーはIIS(Windows)サーバーです。

この作業を行うには何が必要ですか?

おそらくconvert.exeのアクセス許可を変更する必要がありますが、どうすればよいですか?

これは、現在のコマンドです:

"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 $?" 

私はPowerShellでそれを実行する場合、コマンドが機能します。

編集:

私はビクターLeontyevのは、以下の示唆しようとしたが、それはまだ(コメントセクションを参照してください)

編集知りませんでした:私は出力にコマンドをしようと

をこれは:

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

dd(shell_exec($command)); 

一時的に付与あなたの問題を解決するためにの

dd(exec($command)); 

戻り"";

答えて

0

は、次の2つのステップ

をCONVERT.EXEするためのアクセス権を持っていないユーザーを決定し実行する必要がありますwhoamiコマンドの許可。

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

は、Webブラウザ上で次の内容の

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

ロードwhoami.phpをwhoami.php作成し、表示されたユーザー名を注意してください:コマンドプロンプトでラインで、この行を実行します。

xxxxx\yyyyy 

「すべての人」の許可を取り消します。

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

私は 'CACLSを実行する場合:(xxxxx\yyyyyは、前のステップからのユーザーです)このコマンドを実行コマンドプロンプトで

をCONVERT.EXEするには、このユーザーに

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

権限を付与cmd.exe/E/G everyone:R '私はこのエラーを受け取りました' cmdとアカウントの割り当ては実行されませんでした 'cmd – utdev

+0

私はすべてのユーザーに権限パネルの下で完全な制御を与えましたが、アイデア左に? – utdev

+0

whoamiを実行して、ユーザ名x/yを取得した後、cacls convert.exe/E/G xxxxx \ yyyyyを実行しようとしました:ユーザ名はRですが、アクセスが拒否されました – utdev

関連する問題