5

そのため、実行が完了するまでに約5分かかると予想されるgodaddy(嫌いではない)仮想サーバーでPHPスクリプトを実行しています。スクリプトはページを CURLing しますが、一度に複数のページを保持することはありません (同じ変数を再利用するループで実行されます)。php5.ini ファイルを次のように変更しました。

max_execution_time = 600
max_input_time = 120
memory_limit = 64M 

ini ファイルの変更が反映されたことを phpinfo で確認しましたが、120 秒後に Apache 500 エラーが発生しました。今回のエラーログは次のとおりです。

[Wed Jul 11 22:08:52 2012] [warn] [client **.**.**.***] mod_fcgid: read data timeout in   120 seconds
[Wed Jul 11 22:08:52 2012] [error] [client **.**.**.***] Premature end of script headers: test.php

なぜこれらのエラーが発生するのか、または試してみるべきことについて何か提案がある場合は、助けていただければ幸いです。120 に設定された php 設定のオプションに気付きましたが、効果があるかどうかはわかりません: realpath_cache_tt

また、.php ファイルに時間制限を設定しました: set_time_limit( 600 );

前もって感謝します。

更新: .htaccess ファイルで試したのは次のとおりです。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
<IfModule mod_fcgid.c>
IPCCommTimeout  7200
</IfModule>

これにより、ページの読み込み時に Apache 500 エラーが発生します。 FastCGI も無効にしましたが、問題はまだ発生しています。

解決済み RobB は次のことを提案しました。新しいホスティング サービスを探す時が来ました。

4

1 に答える 1

6

GoDaddyでのこの問題の処理方法はわかりませんが、通常の解決策は次のようになります。

発生している問題は、FastCGIがPHPスクリプトを実行しているためですが、デフォルトのIOタイムアウト(120秒)内に応答が生成されないため、500内部サーバーエラーが発生します。

デフォルトのVirtualHostconfファイルを編集してみてください。通常は次の場所にあり、コンテキスト/etc/apache2/sites-available/default内にこのディレクティブを追加します。<VirtualHost>

<IfModule mod_fcgid.c>
   IPCCommTimeout  7200
</IfModule>

変更を保存した後、次のコマンドでapache2を再起動しますsudo /etc/init.d/apache2 restart

GoDaddyから判断できたのは、共有ホスティングでのPHP / FastCGIの最大制限時間は120秒であり、クライアントがこれを増やすことはできないということです。彼らのサポートに連絡して支援を求めることをお勧めします。うまくいけば、彼らの評判が上がらず、あなたが助けを得ることができるでしょう。

更新: それが役立つかどうかはわかりませんが、ホスティングコントロールセンターでFastCGIからPHP5に変更してみてください([設定]>[ファイル拡張子]>[php5])。

于 2012-07-12T05:34:53.460 に答える