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」の項目を確認する。
のコピー-1.png)
スポンサーリンク
4.コマンド
のコピー-1024x619.jpg)
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関連の記事を書いていく予定です。
スポンサーリンク
コメント