[PHP]バッチ処理 後編[バッチファイル作成&設置]

さて、バッチ開発後編です。
まずは、ファイルの絶対パスを一応確認しましょう。
PHPファイルを作成し、batchディレクトリにアップロードします。
batch_test.php 新規作成

print(__FILE__).PHP_EOL;

次に、TeraTermとかでバッチを置くディレクトリに移動
cd batch
実行
php batch_test.php
実行結果
/var/www/vhosts/<ドメイン名>/batch/batch_test.php
これが今回製作したバッチファイルの絶対パスになります。
次にbatch_test.phpを書き換えます。
適当なテーブル(t_batch_test)を一個DBに作成し、
INSERTするようにします。
batch_test.php 書き換え

$host = '<ホスト名>';
$user = '';
$pass = '';
$dbname = '';
try {
$dbh = new PDO('mysql:host='.$host.';dbname='.$dbname, $user, $pass);
$sql = "insert into t_batch_test (test) values ('from batch')";
$stmt = $dbh->prepare($sql);
$flag = $stmt->execute();
if ($flag){
print('success').PHP_EOL;
}else{
print('failed').PHP_EOL;
}
$dbh = null;
} catch (PDOException $e) {
print($e->getMessage());
die('error!!!').PHP_EOL;
}

再度、アップロードしてファイルを上書きした後
コマンドから実行
実行
php batch_test.php
表示結果で「success」と出れば、PHPの記述は問題ありません。
次はcronの設定です。
cronについて僕はレンタルサーバの業者から提供されている
管理者パネルで設定しましたが、そういうツールがない場合は
viあたりのエディタでcron設定ファイルを編集できます。
詳細な設定方法についてはここでは割愛します。
設定時にコマンドを下記のように設定します
コマンド
php /var/www/vhosts/<ドメイン名>/batch/batch_test.php
cronで指定した時刻に追加がされていれば完了です。
実行方法は他にPHPのsystem関数を使う手もあります。

※ご注意
掲載している内容についてはご自身の責任で参考にされてください。