PHP Windowsでexec

2005年12月13日
http://www.s-m-l.org
Suns & Moon Laboratory

Windowsでsystem,execコマンドが動作しない

正確に言うと、コマンドは実行しているのに、その後の処理が停止?という感じでしょうか?

システム構成

回答

答えは↓にありました。 PHP: exec - Manual:のUser Contributed Notesよりまるまるっと引用
tr4nc3 at msn dot com 22-Feb-2004 08:43 I almost gave up trying to get Windows XP w/ Apache 2 to use either system(), or exec() to run a batch file. If the batch file was this... echo test > test.txt it would work fine, creating test.txt... but if the batch file was.. iexplore.exe "http://www.ibm.com" I would get nothing. After hours and hours of messing around with this I figured it must be some type of permission problem. (dugh!) Long story a little shorter.. You have to give Apache permission to "interact with the desktop". Here's how... Start>Run>services.msc Right click "Apache...", select properties. Click on the "LOG ON" tab Check the box "Allow this service to interact with desktop" Click OK Restart Apache Works great! :D HOPE THIS HELPS SOMEONE! Too bad I didn't find a post like this before I figured it out myself. (I could have been working on something.)
いやーほんと、助かりました。見知らぬ人に感謝。

おまけ画像
サービス→Apache2のプロパティ

つづく

これで解決と思いましたが、実は駄目かも
システムの組み込みコマンドは良いのですが、外部コマンドを実行すると駄目っぽいです。実行権辺りも怪しいのですが、わかりませんでした。
コマンドを実行すると、コマンドプロンプト?が表示されて、そのウィンドウを閉じると、プログラムの実行が再開します。
こんなウィンドウが表示される
うーむ。とりあえず本サーバはLinuxなので、今回はこれで良しとしておきましょう。良くないけど。

追記 2005/12/13

久しぶりに試したところ問題無く動きました。「デスクトップとの対話サービスに許可」はオフでも動きました。
構成は下記です。 うーむ。当時のマシンはディスククラッシュしているので再現できませんが、とりあえず今は大丈夫になったという事でしょうか。
ためしに使ったソースファイル一式 php_exec_test_files.zip
Home→PHP Windowsでexec
Suns & Moon Laboratory http://www.s-m-l.org