医師向けのオーディオ ダウンロードを販売する Web サイトを運営しています。現在、顧客がポッドキャストを購入すると、ダウンロードを開始するための直接の HTML リンクが表示されます。リンクは、サイズが 1Gb の ZIP ファイルを指しています。私が尋ねる 1 つの質問は、Apache サーバーのタイムアウトがおそらく数分の場合、ダウンロードがおそらく数時間正常に動作するのはなぜですか? このタイムアウトは、サーバーが GET リクエストを処理し、結果の出力を出力バッファーを介してブラウザーに送信するためのものだと思います。おそらく、バッファーがユーザーに送信されるためのタイムアウトはありません。私は正しいですか?
2 番目の質問は、PHP のタイムアウトについてです。私はダウンロードへの HTML 直接リンクに熱心ではありません。あたかも URL が他のユーザーに知られて無料でダウンロードできるかのように。解決策として、PHP スクリプトを使用して適切なヘッダーを送信し、ダウンロード データをプリロードした変数の「エコー」を送信して、ダウンロード ファイルを転送することが考えられます。私の質問は、php.ini ファイルのタイムアウトがダウンロードに影響するかどうかです。通常、スクリプトが完了するまでに 30 秒かかります。では、ダウンロード中にスクリプトが実行されていますか? または、スクリプトをすばやく完了し、ダウンロード データを PHP 出力バッファーに入れます。後者の場合、バッファが空になるまでのタイムアウトはありますか?
1Gb のダウンロードのサイズを許可するには、php.ini の「memory_limit」に大きな値 (デフォルトでは 128Mb) を設定する必要があると思います。