コンソール プログラムを実行するための簡単な PHP コードを作成しました。
<?php
$cmd = escapeshellcmd('progName.exe arg1 arg2 arg3');
exec($cmd);
?>
サーバーのコンソールでコマンドを直接実行すると、機能します。ただし、ブラウザで PHP を実行すると、機能しません。プロセスprogName.exe
は実行されていますが (サーバー上のタスク マネージャーを使用して確認)、決して終了しません。このプログラムは、引数からいくつかのパラメータを計算し、結果をバイナリ ファイルに書き込み、.WAV ファイルも生成することになっています。ブラウザに表示されるエラーメッセージは次のとおりです。
Error Summary
HTTP Error 500.0 - Internal Server Error
C:\php\php-cgi.exe - The FastCGI process exceeded configured activity timeout
Detailed Error Information
Module FastCgiModule
Notification ExecuteRequestHandler
Handler PHP
Error Code 0x80070102
次に、文章をテキスト ファイルに書き込む簡単なコンソール プログラムを作成しました ( writeTxt.exe hello.txt
)。同じ PHP スクリプトを使用して、ブラウザーで実行したところ、動作しました。
サーバーのタイムアウトを増やそうとしましたが、それでも同じエラーが発生します。この問題の原因は何ですか?