私は自分のPHPスクリプトを使ってニュースレターを送ります。それは完璧に働いた。最近、私のホスティングプロバイダは、30メール/分を尊重するための割り当てを私に指摘します。したがって、各メール送信の間に、私はsleep(2);
を挿入します。 5分(300秒)後に、その変更以来PHPスクリプトが503サービスを利用できない状態で実行を停止します
、スクリプトが停止し、返す:
不可
サービスサーバーが一時的メンテナンスのダウンタイムや容量の問題にあなたの要求をサービスすることができません。後でもう一度お試しください。 さらに、ErrorDocumentを使用して要求を処理しようとしたときに、503 Service Unavailableエラーが発生しました。
4つの所見。 (私は確認してください:それは確かに変更された)
ignore_user_abort(true);
set_time_limit(0);
だから、問題はmax_execution_timeに変数からない来る:私のスクリプトの先頭に
- は、私はそれらの2行を置きます。
このスクリプトは
localhost
で正常に動作します。ここで、PHPのini変数はWebホストよりも制限されています。したがって、問題はmemory_limit
変数からではありません。私はそれがApache Timeoutの可変制限(300)である可能性があると考えました。しかし、私のホストプロバイダはそれについて懐疑的です...
サーバはPHP 5.5で動作します。
これを引き起こす原因は何ですか?
スクリプト(それはphpmailerので動作します)前:
// all email addresses
while ($row = $result->fetch_array())
{
// ...
if ($mail->send())
{
echo "success : " . $row["mail"] . "<br/>";
}
else
{
echo "error : " . $row["mail"] . " - " . $mail->ErrorInfo . "<br/>";
}
}
後:
// all email addresses
while ($row = $result->fetch_array())
{
...
if ($mail->send())
{
echo "success : " . $row["mail"] . "<br/>";
}
else
{
echo "error : " . $row["mail"] . " - " . $mail->ErrorInfo . "<br/>";
}
sleep(2);
}
*あなたは*含む*スクリプトが動作していない可能性がありますか?私たちはまだ透視的ではありません。 –
私はあなたの質問の書式を読みやすくするために改善しました。 [ヘルプセンター](https://stackoverflow.com/help/formatting)のStack Overflowの書式設定のドキュメントを参照して、次回にこれを行うことができます。リスト内のコードブロックは、リストレベルごとに4つのスペースと、コードブロックを示すための4つのスペースをインデントする必要があることに注意してください。 – Chris