さくらインターネットのcronでcakephpを動かす[サブドメイン] | 外部記憶

外部記憶

http://twitter.com/n0bisuke

さくらインターネット(サブドメイン)でcakephpの導入をしましたが,今度はtwitterのbotプログラムなどを動かすcronの設定をします.今使ってるサーバは専用サーバではないのでsshから直接 /etc/crontab を編集できません.

サーバコントロールパネルから[cronの設定]ページへ行きます.
$外部記憶

[>> 新規項目の追加] から新規のcron設定をします.
$外部記憶
このときの書き方は
さくらインターネットのCRONでcakePHPを実行する
ここを見てやりました.
前に書いた
cakephpでtwitterのOAuthを利用してBOTを作ってcron実行するまで
の記事でapp/vendors/shells/cron/controller_action.php を作ってそこに

$_GET['url'] = "(実行したいコントローラ)/(実行したいアクション)";
require_once dirname(dirname(dirname(dirname(__FILE__)))) . "/index.php";

という感じのコードを書いたので同じ様に実行したいアクションを指定します.

実行コマンドには
cd /home/*(アカウント名)*/www/hoge/*(アプリ名)*/app/vendors/shells/cron/; /usr/local/bin/php controller_action.php 1>/dev/null
と指定します.

ちゃんと動いてるか確かめる為に分の設定部分を小刻みに変えながらチェックすると良いです.

$外部記憶


*ミスしてた所
Authコンポーネントによる認証を行うシステムで、cron指定するアクションを要ログインのアクションにしていたのでcronが上手く動いてくれなかった.
beforeFilterの$this->Auth->allow()でcronで動かすアクションをログイン無しでアクセスできるようにしたら動きました.