こんばんわ。
これは後々使えると思うのでメモです。
今回は 「WindowsServer上でphpのバッチを実行する」 ですが、
前提として WindowsServer + IIS + php が
既に導入されているというのが条件です(当たり前ですが…)
さて、この中で大事になってくるのは、
サーバーでもwebサーバーでもありません。
まぎれもなく、phpのスクリプトになります。
通常、コマンドライン上でphpを起動するには、
IIS上でphpが起動できる(インストールしている)のであれば、
「php5.3.27」みたいなフォルダが、Windowsフォルダ内にあるはずなので、
「php-win.exe」を使用して実行する形になります。
指定したファイルを実行する場合には「-f」オプションを付けて
ファイル名を指定して実行します。
こんな感じ。
C:\Windows\php5.3.27\php-win.exe -f D:\hogehoge\test.php
では次にこれをタスクマネージャーに登録します。
「コントロールパネル」 -> 「タスクスケジュール」(ちょっと曖昧ですけど…)をクリック。
すると、cronみたいな設定が行える画面が出てきます。
ここに
「C:\Windows\php5.3.27\php-win.exe」
とオプションとして引数
「-f D:\hogehoge\test.php」
を登録します。
時間は各々ご自由に。
後は実行されるまで…
しかし、ここで注意しなければなりません。
シェルスクリプトとしてのphpに関してですが、
この中でincludeをしているとき、
「include ‘./include_file1.php’;」
というような書き方はダメということ。
当たり前ですが、物理パスで書かないとダメです。
なので、シェルスクリプト内のphpのincludeは以下の通りに書き直します。
include 'D:\hogehoge\include_file.php'; //include './include_file.php';
さらに私の場合には、このphpシェルスクリプト内で、
htmlからPDFを作成することを行ってたため、
htmlのcssのパスも上記のincludeと同様に 物理パスにしました。
(↑ここ盲点)
他には、FTPで転送したりだとか本当は色々とやっているのですが、
概略的には、こんな形で実装が可能となります。