CodeIgniter4でCronを実行する方法
CodeIgniter4.4.4で特定の処理をCronで自動実行させたい。以下に対応方法のメモ。
目次
リファレンス
CLI 経由でコントローラーを実行
https://codeigniter.com/user_guide/cli/cli_controllers.html
コマンドラインだけのルーティング
https://ci-trans-jp.gitlab.io/user_guide_4_jp/general/routing.html#id13
ソースコード
Routes.php
$routes->cli('/cron/test', 'Cron::test');
「cli」指定することでブラウザからはアクセスできず(404になり)、コマンドラインからのみ実行する形になる。
Controllers
<?php namespace App\Controllers; class Cron extends BaseController { public function test() { log_message('info', 'Cron test'); } }
今回は実行されるとエラーログを出力するような動作とした。
実行方法
PHPで実行
SSH接続して以下コマンドで実行。
#[php] [public/index.phpへの絶対パス] [コントローラー名] [メソッド名] [必要なら引数] php /var/www/html/codeigniter4/public/index.php cron test
Cronで実行
SSH接続して以下の通りCron設定する。
#Cronの編集 crontab -e #以下を追記 #[時間設定] [ユーザー名] [PHPパス] [public/index.phpへの絶対パス] [コントローラー名] [メソッド名] [必要なら引数] * * * * * root /usr/bin/php /var/www/html/codeigniter4/public/index.php cron test #Cron設定状況の確認 crontab -l
関連記事
-
CodeIgniter4で祝日一覧APIにCURLでリクエストし結果をファイルキャッシュする方法
Codeigniter4.4.4で祝日一覧APIにCURLでリクエストしたい。尚 ...
-
Codeigniter4で独自・外部ライブラリの作成と呼び出し方法
Codeigniter4で独自ライブラリを作成し、コントローラー側で呼び出したい ...
-
Codeigniter4でエラーログ設定、出力及び確認方法
Codeigniter4.4.4でエラーログの設定を行い特定のファイルに出力させ ...
-
CodeIgniter3でCronを実行する方法
CodeIgniter3系で特定の処理をCronで自動実行したかった。以下に設定 ...
-
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせる方法
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさ ...