MAMP環境において、cronを使う方法について紹介します。
cronを使って、PHPファイルを自動で指定した時間に実行してみます。
cronとは
設定した時間に命令を実行するためのUNIX系OSのデーモンプロセスのことです。基本的にmacOSやLinuxで扱うことができます。
※UNIX系OS・・・UNIXという最古のOS(詳しくはこちら)
※デーモンプロセス・・・定期的時刻に実行するプロセス。バックグラウンドプロセス。(詳しくはこちら)
「毎日7時に、その日の株価を取得する」とかいうときに便利です。自動で指定した時間に何かをさせることが可能です。
cronでPHPファイルを実行する(MAMP環境)
では、実際にcronを使ってPHPファイルを実行してみます。MAMP環境で行います。
※MAMP・・・サーバー環境を手軽に構築できるソフト。
PHPファイルを準備
まず、実行するphpファイルを準備しましょう。
/Applications/MAMP/htdocs の中にcron_testというフォルダを作成します。そして、どのフォルダの中にcron_test.phpというファイルを作成します。
cron_test.phpには、こんな感じのコードを書きます。
<?php file_put_contents("test.txt", "hello"); ?>
file_put_contentsはデータをファイルに書き込む関数です。ここでは、text.txtというテキストファイルに”hello”と書き込みます。
ブラウザで、http://localhost/cron_test/cron_test.phpにアクセスすると、test.txtが作成されて、ファイルを開くと”hello”と書き込まれているのがわかります。
cronで指定した時間にphpファイルを実行
では、このhttp://localhost/cron_test/cron_test.phpにアクセスすることを、cronを使って、指定した時間に行なってみましょう。
macのターミナルを開きます。場所は/Applications/Utilities/Terminal.app
※ターミナル・・・コマンドと呼ばれる命令文を用いてMacの操作や設定をおこなうツール。
ターミナルに、以下のcronを設定するコマンドを書きます。ディレクトリはどこでもOKです。
$ crontab -e
以下のようになります。
次に、『 i キー』を押すと、編集可能になります。
『実行時間 + 実行するコマンドのパス』を入力します。
実行時間は、分、時、日、月、曜日を指定し、半角空白を空けて入力します。実行時間の書き方の詳細こちらを。
参考記事:【cron】定期的に処理を行う【MacOS】【Linux】
以下は、『17時57分にhttp://localhost/cron_test/cron_test.phpを開く』という意味です。
$ 57 17 * * * open http://localhost/cron_test/cron_test.php
『escキー』を押し、『 :wq 』(ファイルを保存し終了する)と入力します。これらはviコマンドと言って、viコマンドについてはこちらのページを参考にしてください。
すると、「”ターミナル.app”がコンピュータを管理することを要求しています。管理にはパスワード、ネットワーク、およびシステム設定の変更が含まれます。」と表示されます。
『OK』をクリックします。
設定した時間(17時57分)になると、ブラウザに、http://localhost/cron_test/cron_test.phpが表示されます。
すると、test.txtが作成されて、ファイルを開くと”hello”と書き込まれているのがわかります。
指定した時間にphpファイルを実行できました!
以上。