2016-11-01 7 views
0

現在、私はPHPスクリプトから "wine"コマンドを使用しようとしています。"wine"をphpのshell_execで使用する

私はこれを実行した場合:

$shell = shell_exec("/usr/bin/wine --version"); 

をすべてが正常に動作しているとWINE版は$シェルに表示されます。

しかし、私はこのようにそれをしようとします。その結果

$run = shell_exec("/usr/bin/wine ".$workdir."/bin/tool.exe -m ".$workdir."/bin/std.maps -a ".$workdir."/bin/alias.file -n ".$workdir."/files/".$project_name."/upload/dump.bin -o ".$workdir."/files/".$project_name."/maps/definitions.list"); 

ワイン:CHDIR

$run = shell_exec("/usr/bin/wine /var/www/html/bin/tool.exe -m /var/www/html/bin/std.maps -a /var/www/html/bin/alias.file -n /var/www/html/files/1-59374-94700/upload/dump.bin -o /var/www/html/files/1-59374-94700/maps/definitions.list 2>&1"); 

私は次の出力を得ます〜/ .wine:そのようなファイルやディレクトリはありません

私は間違っていますか?上記のコマンドをシェルに直接入力すると、すべて正常に動作しています。ワインの前に/ usr/bin /がなければ、出力は同じです。

Brで、クリス

答えて

1

私はそれを自分自身を試していないが、私はワインが異なる環境設定を持つ別のユーザーとして実行されるので、それはあると思います。ディレクトリ/var/wwwの中に.wineディレクトリを作成し、www-dataをこのディレクトリの所有者にして/var/www/.wineホームディレクトリにしてください。

$run = shell_exec("HOME=/var/www/.wine /usr/bin/wine ".$workdir."/bin/tool.exe -m ".$workdir."/bin/std.maps -a ".$workdir."/bin/alias.file -n ".$workdir."/files/".$project_name."/upload/dump.bin -o ".$workdir."/files/".$project_name."/maps/definitions.list"); 
+0

ありがとうございました。それは今働いているようだ。 しかし、script-runtimeは非常に長いです。私はsudoを試してみました。ランタイムは約0.5秒でしたが、現在はあなたのソリューションでは約4秒間実行されており、Xサーバの警告が表示されます。 (これはコマンドラインツールなので、グラフィック出力は必要ありません。 これを動作させるにはどうしたらいいですか?sudoを使いたくないですか? –

関連する問題