Google リーダーから乗り換えた「Fever°」の自動更新の設定に絡んで、「Service Unavailable ( Too Many Access )」というエラーが出て、このブログもろとも見られなくなってしまう症状が発生する件のその後。プロフェッショナルなお友達に協力をいただきました。ありがとうございます!
まず現状の自動取得のためのPHPの内容を解析。
<?php → ここからPHPですよ
set_time_limit(0); → 時間無制限で実行したまえ
while (true) { → ここから※までの間を無限にループするぜ!
print “blah\n”; → blahを表示して改行???(意味不明)
$ch = curl_init(“https://uosan.info/fever/?refresh”); → ()の中身を「$ch」に入れるよ
curl_exec($ch); → $chを実行なう
curl_close($ch); → $chを終了なう
sleep(900); → 900秒(=15分)待って
} → ※
?> → PHPはここまでだよ
時間無制限で無限にループする処理…要するに終わらないプログラムではないか! これを1時間おきに自動実行するってことは、結果的に同時にたくさんの数のプログラムを起動する事になって、サーバーに負荷がかかる→エラーという事なのではないか?
PHPを実行するタイミングは、cron設定のコントロールパネルで指定してるんだから、その辺りの部分はごっそり削除して、単純にPHPを実行して終わるだけにする。
<?php
$ch = curl_init(“http://uosan.com/fever/?refresh”);
curl_exec($ch);
curl_close($ch);
?>
これを、一定の時間ごとに実行するようにすればいけるはず。15分おきくらいでいいんだけど、10分おきまでしか設定できないから、そういうことで。
今のところエラーも出ないしちゃんと動いてる様子。cronの実行結果をメールで受け取るようにしておくと、10分毎に「X-Powered-By: PHP/*.*.* (*はバージョン番号)」というメールが送られてくるから、通知をオフにしちゃった。そんなこんなで、ロリポップ!のサポートのみなさん、ご迷惑をおかけいたしました。
はじめまして、もけもけと申します。
以前、ロリポップでFever導入の記事を書いて以来、結構順調に使えていたのですが、ここにきてサーバーが停止するという難儀な状況になって頭を抱えていたのです。いろいろと検索して、この記事にたどり着いて、すごく参考にさせていただきました。なかなかFever使う人がいないようで、情報は少ないですよねぇ。ほんとうに助かりました、ありがとうございます。
もけもけさん、はじめまして。
この自動更新のPHPは、もけもけさんの記事を元にしたもので、ぼくの方こそ本当に助かりました(笑) ありがとうございます。Feverの情報は少ない上に、あっても上級者向けというかで、解読できないことも多いです。でも、せっかく買ったのでなんとか使っていきたいと思っています。