私は Apache 2.2 PHP 5.3 MySQL 5.5 アプリケーションを持っています。page1.php のフォームは、ユーザー入力を受け入れます。値は GET を使用して page2.php に渡されます。page2.php の PHP スクリプトは MySQL クエリを実行し、結果を表示します。ユーザー入力パラメーターに応じて、クエリは 3 ~ 900 秒実行される場合があります。
私のテストでは、実行時間が 300 秒未満のクエリの結果はすべて OK と表示されます。実行時間の長いクエリはサーバー上で正常に完了しますが (たとえば、500 秒後に CPU 負荷が 90% から 0% になることがわかります)、ブラウザーに結果が表示されず、ステータス バーに "Transfering data from my.host.org . ..」
この時点で、同じブラウザー (Firefox) の新しいインスタンスでアプリケーションのページを開こうとすると、タブヘッダーに「接続中...」と表示され、タブヘッダーに「my.host.org を待っています...」と表示されますステータスバー。この時点で、アプリケーションの任意のページを他のブラウザー (IE) で開いても問題ありません。
以下は、これまでに変更/設定した設定ですが、役に立ちませんでした。どんなアイデアでも役に立ちます。ありがとうございました。
apache2.conf:
Timeout 300 -> 1800
php.ini:
user_ini.cache_ttl = 300 -> 1800
max_execution_time = 30 -> 1800
default_socket_timeout = 60 -> 1800
mysql.connect_timeout = 60 -> 1800
page2.php:
ignore_user_abort(1);