cakephp3.xcronとsh

2016年8月20日更新 view: 46 view
https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRBEG7ff4xKwmdyPvPYkNAqfqDNlOnhVQn8Vf4sbqy3hAhKT83M

cron動かへんやないか!

cakephp3.x になって cronの動かし方がわからん。
ということでググりまくった結果わかったのでお知らせします。
うまく動かないと
Minimum PHP version: 5.5.9. You are using: 5.4.16.
みたいなエラーが出たりするので、注意。

/src/Shell/SendMailShell.php

<?php

namespace App\Shell;

use Cake\Console\Shell;
use Cake\Mailer\Email;

class SendMailShell extends Shell
{

public function main(){
}

public function send()
{
//そのまま送る
$email = new Email('default');
$email->from(['your@hoges.jp' => 'てすたろう'])
->to('rand@hogeo.jp')
->subject('タイトル')
->send('本文');
}


}

これでメールを送信するshができました。
早速コマンドラインから送信してみます。

/root/www/[あなたのフォルダ]/bin/cake send_mail send

これでメールが送られて来たら、とりあえずこのshは動く。

つづいてcronの設定

cakephp3で厄介なのがphp7を使っているため、phpのパスやphp.iniを
有効にしつつcronを仕掛けないと古いphpを使ったりしてうまく動作しない。
ということで、そのパスの設定も兼ねてしかける。

スポンサードリンク

crontab

47 * * * * /opt/remi/php70/root/usr/bin/php -c /etc/opt/remi/php70/php.ini /root/www/[あなたのフォルダ]/bin/cake.php send_mail send

・時間設定
・php7 への絶対パス
・-c
・php7用のphp.ini への絶対パス
・/bin/cake.php への絶対パス
・シェルスクリプトの指定

php7のパスを調べるには?

whereis php

でphpのパスがずらっと表示される。

php.iniは?

 find / -name "*php.ini*" -print

という順番で設定する必要があります。
これで動くはず。
あと、cronの場合は
/bin/cake
でなく
/bin/cake.php
なのでそこも注意したい。

スポンサードリンク

関連記事

関連カテゴリ

まろにーちゃん

一位を目指して日々がんばっています!

ピックアップ

パソコン・ソフトウェア ランキング

3月29日 ( 水 ) にアクセスが多かった記事はこちら!