有効期限の過ぎた仮登録ユーザをcronで自動的に削除する

【注】
今回の方法よりも、より適切と思われる方法を下記で紹介しています。
こちらも参考にしてくださいm(_ _)m
◆有効期限の過ぎた仮登録ユーザをcronで自動的に削除する〜その2〜
http://d.hatena.ne.jp/sutara_lumpur/20100625/1277424666

環境

やりたいこと

ユーザ登録で、記入されたアドレス宛にメールを送信して、
本文に添えられたURLをクリックしてもらうことで登録完了する
というシステム。


メール送信後の仮登録の状態から一定時間が過ぎてしまった
ユーザを、自動で削除することはできなかと考えました。

できあがった設定

コマンドラインからCakePHPのアクションを実行するために】
CakePHPの場合は、普通のphpのようにコマンドライン
『$ php /hoge/controller/action』のように実行させることができません。
下記のように『app/vendors/shells』の下に『cron』フォルダを作り、
その中にphpファイルを作って、index.phpへGETでパラメータとして
コントローラ名・アクション名を送る必要あるようです。


また、このcron_action.phpファイルには、実行権限を与えなくては
なりません。


【app/vendors/shells/cron/cron_action.php


SQLite
database.phpにおいて、相対パスではなく絶対パス
指定しなければ、cronどころか通常の端末による操作でも
データベースに接続できないというエラーが表示されます。

【app/config/database.php
class DATABASE_CONFIG {
var $default = array(
'driver' => 'sqlite',
'connect' => 'sqlite_open',
'database' => '/home/sutara/Cake_test/app/webroot/SQLite2/test.sqlite' //成功
//'database' => './SQLite2/test.sqlite' 失敗
);
}


【crontab】
端末から『crontab -e』と入力して編集画面を開き、下記を入力。

59 * * * * /opt/lampp/bin/php /home/sutara/Cake_test/app/vendors/shells/cron/cron_action.php
『毎時59分に、cron_action.phpphpとして実行する』という意味です。


注意点は、コマンド名のphpも、フルパスで書かなければならない
ということです。
crontabで実行されるときには、ほとんどの環境変数が設定されていないそうなので。


参考にしたページ