今回エックスサーバーで運用しているサブドメインサイトでCronを設定する際に少々手間取ったため、備忘録として方法をメモしておきます。今回設定するのは1分おきに指定のPHPプログラムを実行するという内容です。
基本的な書き方は下記のような方式です。
- 分…*/1 (1分おき)
- 時間…* (すべての時間)
- 日…* (すてべの日)
- 月…* (すべての月)
- 曜日…* (すべての曜日)
- コマンド…別途記載
Cronの項目の設定は上記のようになります。次にコマンドの部分はどのように記載すればよいかを見てゆきたいと思います。
エックスサーバーでのCronのコマンドの記述は下記のようになります。
/usr/bin/[①PHPバージョン] /home/[②サーバーID]/[③独自ドメイン部]/public_html/[④サブドメイン部]/[⑤PHPファイル名]
具体的な記述例はこんな感じになります。
/usr/bin/php7.4 /home/tadworks/tadworks.jp/public_html/sub/test.php
それぞれの要素について確認の仕方をまとめます。
①PHPバージョン
サーバーパネルの「PHP Ver. 切り替え」の各独自ドメインのリンク先で確認可能です。phpバージョンがPHP7.4.28だった場合、Cronでパスを通す場合の記述は、php7.4までとなります。
②サーバーID
エックスサーバーのIDには、ログインID、サーバー番号、サーバーIDがあって非常にわかりづらいのですが、ここで設定するのは「サーバーID」となります。トップページにサーバーIDの記載があるのでそこから確認してください。
https://secure.xserver.ne.jp/xapanel/xserver/index
③独自ドメイン部
独自ドメイン部にはサブドメインは含みません。例えばサブドメインが、sub.tadworks.jp だった場合、ここでは tadworks.jp を記載します。
④サブドメイン部
ここではサブドメイン部だけを記載します。例えばサブドメインが、sub.tadworks.jp だった場合、ここでは sub を記載します。サブドメインでは、実際には独自ドメイン内にサブドメイン用のディレクトリを持っていることが多いため、このディレクトリ名を指定している形となります。
⑤PHPファイル名
PHPファイル名は実行したいファイル名をそのまま記載すればOKです。