cronによってPHPファイルを自動で実行|mixhost での設定

WordPressなど、PHPを利用して作成されているウェブサイトなどを運営していると、ページを定期的に自動で更新させたい場合があるかもしれません。

そよのような場合に、利用できるのがcron(クーロン)です。cronは、UnixやLinuxで使用でき、指定した日時に、自動で特定のプログラムを実行することが出来ます。

今回は、mixhostのサーバーでcronを設定し、定期的にPHPファイルを自動で実行させる例となります。

cronを設定しPHPファイルを自動で実行させる例

実行させたいPHPファイルとシェルスクリプトのファイルを作成

実行させたいPHPファイルを作成

まずは、実行させたいPHPファイルを作成します。今回は、例としてファイル名を「cron.php」とし、このファイルに実行させたプログラムを記述します。そして、サーバーのドキュメントルートのディレクトリに、ファイルを配置します。

そして、後で使用するため「cron.php」ファイルのフルパスを確認しておきます。mixhostの初期設定では、ウェブサイトのドキュメントのルートのパスは、「/home/ユーザー名/public_html/ドメイン名」となるので、「cron.php」ファイルのフルパスは、「/home/ユーザー名/public_html/ドメイン名/cron.php」となると思います。

シェルスクリプトのファイルを作成

次に、cronにPHPファイルを実行させるために、シェルスクリプトのファイルを作成します。今回の、例では、ファイル名を「cron.sh」とし、ファイル内には以下を記述します。

#!/bin/sh
/usr/bin/php /home/ユーザー名/public_html/ドメイン名/cron.php

上記は、シェルスクリプトの宣言として1行目に、#!/bin/shを記述しています。2行目には、サーバーでのPHPファイルへのパス /usr/bin/php の後に、実行させたいPHPファイルのフルパスを記述しています。

また、mixhostでの、その他のファイルへのパスは以下のリンク先を参考にしてみてください。

各種パス一覧 | mixhostヘルプセンター

作成した「cron.sh」ファイルは、「cron.php」と同じディレクトリに配置します。そして、後で使用するため「cron.sh」ファイルのフルパスも確認をしておきます。ファイルはドキュメントルートのディレクトリに配置したので、フルパスは「/home/ユーザー名/public_html/ドメイン名/cron.sh」となると思います。

シェルスクリプトのファイルのパーミッションを変更

「cron.sh」ファイルをアップロードしたら、cronで実行できるように、ファイル マネージャーなどで、ファイルのパーミッションを705か755にしておいて下さい。

ファイルのパーミッションについては以下のリンク先を参考にしてみてください。

パーミッションについて

mixhostのコントロールパネルからcronジョブを設定

次に上記で作成した「cron.sh」ファイルを、cronジョブで定期的に実行させる設定を、mixhostのコントロールパネルから行います。

まず、mixhostのコントロールパネルの「詳細」カテゴリーの「Cronジョブ」を選択し、設定画面へ移動します。

mixhostのコントロールパネルの「詳細」カテゴリーの「Cronジョブ」を選択した画像
mixhostのコントロールパネルの「詳細」カテゴリーの「Cronジョブ」を選択

cronジョブの設定画面では、定期的に実行させる日時と、コマンドを指定します。そして、「新しいcronジョブを追加」ボタンを押して、cronジョブを追加します。

以下の画像がcronジョブを設定した画面となります。

cronジョブの設定画面から、定期的に実行させる日時と、コマンドを指定した画像
cronジョブの設定画面から、定期的に実行させる日時と、コマンドを指定

上記画像の例では、cronジョブの設定画面の「共通設定」の選択肢から、「1日に1回」を選択し、1日1回、A.M.12:00にcronジョブを実行させる設定にしました。

日時の設定は、設定画面の「共通設定」以外からでも、日時の欄を自身で入力し、任意の日時を設定できます。

「コマンド」の欄には、上記で作成したシェルスクリプトのフルパスの「/home/ユーザー名/public_html/ドメイン名/cron.sh」を入力します。

以上の設定を行うことにより、mixhostにて、指定したPHPファイルを定期的に自動で実行することが出来ると思います。

参照サイト・書籍

コメントまたはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。Twitterで返信する場合はコチラから。