- ベストアンサー
phpスクリプトのみで定期実行
PHPのプログラムのみで5分に1回くらいサーバーにアクセスしメールチェックしたい。 現状サーバーにアクセスしメールチェックするとこまで完成してるのですが、定期的にアクセスする方法で苦戦してます。 条件的には (1)PCは切りたい (2)cronは使用できません (3)cgi等も使用できません PHP無限ループ+タイマーで自動実行風にできるでしょうか? 詳しい方、ご回答よろしくおねがします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
(1)PCは切りたい (2)cronは使用できません このどちらかが可能なら可能なんですが。。 専用サーバーとか自前のサーバーならPHPを好きなように実行できますが、 (というかそれならcronが使用できますよね。) それ以外の場合はなんらかのアクセスがなきゃ実行されません。 >PHP無限ループ+タイマーで自動実行風にできるでしょうか? 無限ループでバッファ関数を使っても5分はきついでしょう。 それでもアクセスしなければ実行されないうえに、 大体のサーバーが30秒ぐらいでPHPの処理制限がありますから、それ以上実行できません。 一般的にこういった処理は普通cronを使います。
その他の回答 (2)
- honoka-cha
- ベストアンサー率54% (40/73)
コマンドラインでphpを使ったらどうでしょう。 例えば、loop.phpファイルを作り内容は以下のような感じにします。 #!/usr/bin/php -q <?php while(){ やりたい処理; sleep(3600); } ?> それをLinuxサーバーのコマンドラインで php loop.php で実行。 始めてしまったプロセスを止めるにはLinuxのkillコマンドで。 自分ではやったことないので、やるなら自己責任で。 参考URLもよく見てね。
お礼
OSがFreeBSDでなのでできるかどうかわからないのですが、調べてみます。 ありがとうございました。
- hogehoge78
- ベストアンサー率80% (433/539)
質問の意図がイマイチ不明瞭です。 PHPプログラムは何で実行する予定ですか。 ローカルPCで、デーモン的に使いたいということなのでしょうか。 レンタルサーバのような自分の自由に構成がきかないものの上で行いたいということでしょうか。
お礼
回答遅くなってしまい、すいません。 無限ループなので、一回phpスクリプトにアクセスしたら定期的にずっと実行するようなことを考えていたのですが。 難しいみたいですね・・・
お礼
やっぱサーバーにはそういった制限がかかっているのですね(^_^;) おっしゃるとおりcronが使えればいいのですが・・