【Cron】XServerでphpを定期実行させる方法
サイト運営をしていると定期的に自動実行したいことが出てきたりします。
専用のツールなどを使う手もありますが、phpで済むならレンタルサーバーで定期実行させることができます。
今回はXServerでphpプログラムを定期実行させる方法を紹介します。
Cronとは
CronとはLinuxなどでプログラムを定期実行させるためのコマンドです。
Windowsのタスクスケジューラと似たようなものです。
1. phpファイルの作成
まず定期実行したいphpファイルを作成します。
《注意点》
require_once(dirname(__FILE__).'/wp-load.php'); // phpファイルをpublic_htmlに保存する場合
require_once(dirname(dirname(__FILE__)).'/wp-load.php'); // phpファイルをpublic_htmlの1つ下のディレクトリに保存する場合
WordPressの関数(get_postsなど)を使用する場合はwp-load.phpファイルの参照設定する必要があります。
上のようにrequire_onceをプログラムの先頭に記載してください。
phpファイルをpublic_htmlディレクトリに保存するならdirname関数は1つ。phpファイルをpublic_htmlの1つ下のディレクトリに保存するならdirname関数を2つネストして使用します。
2. phpファイルをディレクトリに保存
FTPソフト(FileZillaやFFFTPなど)を使ってレンタルサーバーのディレクトリにphpファイルを保存します。
3. phpファイルのパーミッション変更
FTPソフトから保存したphpファイルのパーミッションの変更を行います。
XServerで説明があるようにパーミッション値を「701」にしておけばCronから実行ができます。
実行するスクリプトファイルに対し、実行権限を付与するパーミッション(パーミッション値「701」など)に変更する必要があります。
https://www.xserver.ne.jp/manual/man_program_cron.php
4. Cron設定
XServerのサーバーパネルにログインし、「Cron設定」をクリックします。
Cron設定の追加タブをクリックして設定を入力していきます。
上の画像では毎日8時に実行するように設定しています。「*」を打ち込んだところは毎日や毎時間といった意味になります。
Cron設定のコマンドについて
Cron設定画面にてコマンドを記載するのですが、ここはミスしやすいので慎重に進めてください。
/usr/bin/php7.4-cgi /home/サーバーID/独自ドメイン名/public_html/hogehoge.php
phpバージョン
phpのバージョンは7.4のように必ず*.*で記載します。7.4.33のようにフルバージョンで記載すると動作しません。
PHPの高速化に関する設定(FastCGI、キャッシュモジュール)が標準で有効になります。
各PHPバージョンとも、「FastCGI」が標準で有効になります。
高速化設定ページより引用
設定を変更することはできません。
また、XServerでは高速化の関係でデフォルトでCGIが有効になっています。
そのためphp7.4-cgiのように末尾に-cgiを付ける必要があります。
間に半角スペースを入れる
/usr/bin/php7.4-cgi ここに半角スペース /home/サーバーID/独自ドメイン名/public_html/hogehoge.php
phpバージョンとファイルパスの間には半角スペースを入れる必要があります。
ここは間違えやすいので気を付けてください。
サーバーID
サーバーIDはxs******というものでサーバーパネルの上部に記載されています。
phpファイルはフルパス指定
/home/サーバーID/独自ドメイン名/public_html/hogehoge.php
phpファイルはフルパスで指定する必要があります。
必ずpublic_htmlを記載してphpファイルに到達するまでのパスを記載します。
【推奨】通知アドレスの登録
Cron設定画面にて「Cron結果の通知アドレス」という欄があります。
ここにメールアドレスを入力すると、Cronが正常動作したかメールで結果を教えてくれます。
最初はメールアドレスを入れておいて、正しく動作するか確認するのをおすすめします。
《PR》
速い! 高い! 分かりやすい!
このサイトもXServerを使っていますがワードプレスを使うならXServerがおすすめです。