1

サーバー側で.exeファイルを実行しようとしています。
言い換えれば、私が本当に望んでいるのは、ユーザーがファイルをサーバーにアップロードした後、.exeファイル(このファイルを変換する)が実行されることです。
メモ帳を開いて、問題が実行可能ファイルにあるのかphpコードにあるのかを確認しようとしましたが、どちらも実行されません(ただし、タスクマネージャーを確認すると、システムに属するnotepad.exeプロセスがあることがわかります。ユーザー)。私の推測では、これはWindowsのセキュリティ対策に反していると思います
。おそらく、Windows7x64でXAMPPを実行していると言えます。

これは私がしていることです:

exec("cd ../../ConvertObj/ && ConvertObj.exe", $data, $ret);
//for debuggging
var_dump($data);
var_dump($ret);

ご覧のとおり、問題を見つけるために出力を読み取ろうとしています。さて、なぜ私がこれもunity3dとしてタグ付けしたのか疑問に思われるかもしれません。この実行可能ファイルは、Unity3dスタンドアロンの.exeです。
私が読んだものには、Unity3dをGUIなしで実行できるようにするコマンドライン引数がありますが、残念ながら、これはPROのみの引数です...サーバーxDでGUIを表示してもかまいません。私は(unity3d .exeを使用して)取得します

array (size=2)
    0 => string 'Mono path[0] = 'C:/xampp/htdocs/ConvertObj/ConvertObj_Data/Managed'' (length=67)
    1 => string 'Mono path[1] = 'C:/xampp/htdocs/ConvertObj/ConvertObj_Data/Mono'' (length=64)

ちょっと変だったけど。私の推測では、dirコマンドは問題なく機能するため、Windowsはサーバー上のすべてのGUIアプリケーションをブロックしています。これらの2行は、Unity3Dが何かについて不平を言っていると思います...何か考えはありますか?

4

1 に答える 1

0

私は前にこれをしなければなりませんでした。制限されたユーザーがいる閉じた(LAN)環境で、私はこれを一緒にハッキングしました。

(記録のために、これは私が誇りに思っていることではありませんが、それは機能し、今日まで機能し続けています。これが一般の人々の使用である場合、私はこれをお勧めしません)

XPでは、apacheサービスで「このサービスがデスクトップと対話できるようにする」をチェックするだけで済みます。これはW7では機能しません。また、上記のコメントが示唆している私の経験では、apacheユーザーを使用するようにサービスを設定します...これも機能しませんでした。

W7でそれを機能させるために私が知っている唯一の方法は、サービスメニューでサービスとしてのapacheの実行を停止することでした(スタートアップを手動に設定します)。次に、httpd.exeを使用して、スタートアップアイテムにショートカットを作成します。

また、何らかの理由で完全な絶対パスを使用する必要がありました。c:\Program..。

繰り返しますが、これはひどいハックであり、99%の確率で、あなたがしていることを行うためのより良い方法があると思います。アプローチを考え直してみてください。

于 2012-07-30T10:33:01.373 に答える