【PHP】Conoha WING ジョブスケジューラー コマンド 設定方法

1.ディレクトリ構成

xxxxx_{ユーザーID}@localhost
 L-- ほか複数のディレクトリ
 L-- public_html
   L-- xxxx.com (ドメイン)
   L-- yyyy.xxxx.com (サブドメイン)
     L-- check_php.php
     L-- test_schedule.php
     L-- log.txt

今回は、例としてルートドメインではなく、サブドメインを使用する。

スポンサーリンク

2.ファイルを作成

check_php.php

以下のようなPHPファイルを作成する。
このファイルは、PHPのパスを確認するためのファイルです。

<?php
phpinfo();
?>

test_schedule.php

以下のようなPHPファイルを作成する。
このファイルが、実際にジョブスケジューラーで走らせるファイルになります。

ジョブスケジューラーで指定した日時になると、
動作を開始した年月日時分秒を取得し、
時間を「cronは正常に動作しました」の文字と一緒にlog.txtに書き込む。

log.txtのパスは、絶対パスで指定する。
パスを間違えていた可能性もあるが、相対パスでは、うまく稼働せず…。

<?php
$timestamp = date('Y-m-d H:i:s');
$message = "[$timestamp] cronは正常に動作しました\n";

file_put_contents('/home/{ユーザーID}/public_html/{ドメイン}/log.txt', $message, FILE_APPEND | LOCK_EX);

echo "cronは正常に動作しました";
?>

log.txt

何も書かずにテキストファイルを作成する。

これらのファイルをすべて同じ階層に配置する。

スポンサーリンク

3.正しいPHPパスの確認

まずは、ConoHa WINGでの正しいPHPパスを確認する。

https://{ドメイン名}/check_php.phpにアクセスし、
Loaded Configuration File」の項目を確認する。

スポンサーリンク

4.コマンド

PHPのパス

php82の部分は、自分のサーバーのPHPバージョンにより異なる。
PHP7.4 → php74
PHP8.0 → php80
PHP8.1 → php81

/opt/alt/php82/usr/bin/php

cronで稼働させるファイルのパス

ユーザーIDは「ab1cd0_(アンダーバー)」と「@(アットマーク)」の間にある
「c1234567」を使用する。 ※ab1cd0_c1234567@localhost
確認方法:「サイト管理」→「ファイルマネージャー」→画面左上のよく使う項目の下にある。

ドメインは「https://」や「www.」を除く。

/home/{ユーザーID}/public_html/{ドメイン}/test_schedule.php

上記2つのパスを半角スペースで繋ぎ、ジョブスケジューラー管理画面で入力する。

/opt/alt/php82/usr/bin/php /home/{ユーザーID}/public_html/{ドメイン}/test_schedule.php

スポンサーリンク

5.実際の動作

cron設定した日時を過ぎて、log.txtを確認すると上記のように表示されていれば成功です。

パスが通らない時は、↓他のパスでも試してみてください。
Conoha wing Web設定
→上記リンクの「プログラム言語のパスを教えてください。」項目を参照してみてください。

他にもPHP関連の記事を書いていく予定です。

スポンサーリンク

コメント

タイトルとURLをコピーしました