21

ローカルホストで簡単なクロール スクリプトを (php で) 書きました (4 つのバリエーションがあります)。それらはすべてlocalhostで正常に機能しました。しかし、それらを共有ホスティングに移動したとき、そのうちの2つは機能し、他の人は内部サーバーエラーを発生させました。error_log を調べたところ、次の行が表示されました。

[Wed Jan 23 22:01:02 2013] [warn] [client ***] mod_fcgid: read data timeout in 61 seconds
[Wed Jan 23 22:01:02 2013] [error] [client ***] Premature end of script headers: index.php

検索しましたが、有用な結果が見つかりませんでした。これらのエラーに関連するものは何ですか? 何か案は?

4

8 に答える 8

40

Linux サーバーにアクセスできる場合は/etc/httpd/conf.d/fcgid.conf、vim でファイルを編集してください。
に変更FcgidIOTimeout 45FcgidIOTimeout 600ます。
アパッチを再起動します。
その後、高速 CGI タイムアウトが解決されます。

于 2013-04-10T16:31:38.707 に答える
2

Drupal7 がインストールされた MediaTemple Grid インスタンスでこの問題が発生しました。FastCGI が原因であることが判明しました。通常/安定した CGI に切り替えると、問題が解決したようです。

于 2014-06-11T18:37:00.743 に答える
2

仮想ホストを使用している場合 (私の場合は ispconfig を使用しています)、仮想ホストの構成ファイルを変更する必要があります。これらのファイルは/etc/httpd/conf/sites-available、各仮想ホストの下にあります。目的の構成ファイルを編集し、IPCCommTimeout現在の値を見つけてより高い数値に設定するだけです。通常のサイトと SSL サイトがある場合は、同じ構成ファイル内の両方の変数に対してこの変更を行う必要がある場合があります。

于 2015-12-14T08:42:39.933 に答える
0

基本的に、スクリプトはサーバー構成に対して実行時間が長すぎます。mod_fcgidは、phpが応答するのを待っており、61秒後にあきらめるように設定されています。この共有ホスティングのため、変更できない場合があります。

これはとにかくブラウザ/ウェブサーバーを介して実行されるべきものではありません。コンソールスクリプトとして記述します。

于 2013-01-23T20:19:13.460 に答える
0

61 秒でデータのタイムアウトを読み取る

彼らはタイムアウトしました。実行時間が 60 秒に設定されている可能性があります。そのため、61 秒でプロセスが強制終了されたため、途中で終了しました。

タイムアウトを調整するか (推奨されません)、別のソースからスクリプトを実行することができます (推奨)。

于 2013-01-23T20:17:03.410 に答える
0

max_execution_timemod_cfgid は、PHPスクリプトの実行中に PHP 以外の時間制限を導入します。どちらが先に来ても「勝つ」。

私が見る限り、mod_cfgid が考慮する時間制限の構成項目は数多くあります。私は専門家ではありませんが、どれがどれを行うかを判断することはできませんが、少なくとも私たちの場合は、次の行を追加します。

IPCCommTimeout  9999

fcgid.conf予期しないタイムアウトの問題を解決しました。

于 2015-03-08T11:41:34.157 に答える