裏で延々と処理させるスクリプトを作りたかったので、サンプルを作ってみました(はまりました)。
1.php環境の確認
$ php -v
2.シェルの作成
appディレクトリで作業します。
掟その1:ファイル名(クラス名)はTestShell.php(クラス名:TestShell)のようにShellの前に任意の名前(頭文字大文字)をつけること。
掟その2:シェル実行時はtest (任意でつけた名前のすべて小文字)で実行
掟その3:必ずextends Shell(またはAppShell)すること
掟その4:シェルはConsole/Commandに配置すること
ということで、下記のコードを用意しました。
app]$ vi Console/Command/TestShell.php
class TestShell extends Shell {
function main () {
$this->out('Hello CakeShell');
}
}
?>
3.シェルの実行
app]$ Console/cake test
でやるだけなのですが、結果も出てきましたが、Warningもでてきました。
4.環境の修正
Permissionエラーなので、調べてみるとmaskの問題みたいです。
app]$ vi Config/core.php
375, 388行目のmaskを追加しました。これでもうまくいかないので、
app]$ vi Config/bootstrap.php
Cache::config('default', array(
'mask' => 0666,
));
を追加しました。
参考
http://www.iwaking.com/20121210/740/
まだうまくいきません。もう少し調べてみると、app/tmpのディレクトリの中身のPermissionがまだ悪いみたい。
参考:http://qiita.com/mochizukikotaro/items/f60f70b595f2a7a302c2
cakephp設置時に
app] $ chmod -R 777 tmp
としているが、Permissionが変わらなかったファイルがあるらしい。もう一度やったが
ダメだった。なのでrootで実行して変更した。もう一度実行してみると
となってやっとできた。
次は、cronの設定とコントローラ/アクションとの連携をしてみます。
0 件のコメント:
コメントを投稿