Yii のコンソールコマンドを cron で実行するテストをしてみました。
全体的な流れ
- データベースを作成
- config/main.php と console.php の設定
- Gii でモデルを作成
- コンソールコマンドの作成
- ローカルでのコンソールコマンドのテスト
- さくらインターネットの cron の設定
- さくらインターネットサーバでのコンソールコマンドのテスト
1. データベースを作成
テスト用に test というデータベースを作成し、hoge というテーブルを作成します。カラムは以下。`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 32 ) NOT NULL
2.config/main.php と console.php の設定
Gii モジュール部分とデータベースの設定を行います。コンソールコマンドでモデルを使用しますので、main.php の import 部分をそのまま console.php にもコピペします。3. Gii でモデルを作成
hoge テーブルのモデル Hoge を作成します。4. コンソールコマンドの作成
/protected/commands 下に TestCommand.php を作成。とりあえずテストなので、このコンソールコマンドを実行すると、データを insert するものを作ります。5. ローカルでのコンソールコマンドのテスト
コンソールで protected まで移動して yiic と入力して Enter。test という項目があれば使える状態なので yiic test と入力して Enter。エラー等がなければ成功したということなので、データベースを見に行って、データが insert されているか確認します。
確認後、諸々のファイルをプロダクションモードに設定後、サーバにアップロード ( index.php、yiic.php, main.php, console.phpなど) 。また、サーバのデータベーステーブルの追加も行います。
6. さくらインターネットの cron の設定
さくらインターネットサーバコントロールパネルに移動します。左側のメニューからアプリケーションの設定を探して CRONの設定 リンクをクリック。続いて、CRON 設定一覧の 新規項目の追加 リンクをクリック。
実行コマンドに cd /home/ユーザ名/www/protected/ ; /usr/local/bin/php yiic コマンド名 を追加。例えば、ユーザ名が yiiuser の場合で、今回作った TestCommand.php を実行させたい場合は以下を追加します。
cd /home/yiiuser/www/protected/ ; /usr/local/bin/php yiic test
実行日時等は説明を読んでください。とりあえずテストしたい場合は、月日時をアスタリスクにして、分のみ、現在の分から1,2 程度あとの分に設定してやると良いかもしれません。
0 件のコメント:
コメントを投稿