SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

WindowsとLinuxでPHPのcronを作成して自動化する

  • X ポスト
  • このエントリーをはてなブックマークに追加

Windows VistaでPHPのcronを実行する

 WindowsでPHPスクリプトを実行するには2つの方法があります。1つは、cronを手動で実行する方法です。もう1つは、Windowsタスクスケジューラサービスを使って、特定の周期と頻度でcronが実行されるようにスケジュールする方法です。

 ここでも、前に示した「mycron.php」というPHPスクリプトを例に使って説明します。

 一般に、cronを手動で実行するのは効果的な解決策ではありません。人間が物理的にコマンドを入力する必要があるからです。バッチファイルを作成すると、この処理を簡略化できます。まず、.bat拡張子付きのテキストファイル(この例では「cron.bat」)を作成し、次の構文を使ってファイルに2行を追加します。

SET PATH="{php.exe HOME}";
start php.exe phpscriptname.php

 例えば、「mycron.php」スクリプトを実行する場合は、次のように記述します。

SET PATH="D:\PHP"
start php.exe mycron.php

 1行目は、現在のディレクトリをPHPアプリケーションサーバー実行可能ファイルの場所に設定します。2行目は、PHPスクリプトを新しいウィンドウで開始します。

 PHPスクリプト「mycron.php」をバッチファイルと同じディレクトリに配置します(または、「mycron.php」の場所を参照するようにバッチファイルのパスを変更します)。

 Windowsでcrontabが実行されるたびに、MS-DOSウィンドウが開いてスクリプトが実行され、スクリプトが完了するとウィンドウが閉じます。出力は「logs」サブディレクトリに作成されます。

 もう1つのオプションは、Windowsタスクスケジューラサービスを使う方法です。少なくともWindows 95以降のすべてのバージョンのWindowsでは、タスクスケジューラを使ってジョブをスケジュールし、指定した時間に実行できます。ただし、Windows Vistaでは以前のバージョンのWindowsよりも柔軟かつ安全にタスクを実行できるようになっています。Windows Vistaのタスクスケジューラの最も重要な新機能は次のとおりです。

  • 複数の条件を指定して、コンピュータが特定の状態になっている場合にのみタスクを実行するように制限できます。例えば、コンピュータがアイドル状態になっているとき、バッテリ電源ではなくAC電源を使用しているとき、ネットワーク接続が使用可能なとき、またはコンピュータがスリープ状態ではなくオンになっているときだけ、タスクを実行するようにスケジュールすることができます。
  • Windows Vistaのタスクスケジューラでは、コンピュータのアイドル時、起動時、またはログオン時にタスクを開始するトリガがサポートされています。
  • 管理者は、タスクが正しく実行されなかった場合のタスクスケジューラの動作を設定できます。タスクが失敗した場合に、管理者はタスクを再試行する回数を指定できます。また、タスクを実行する最大限の時間を設定し、実行時間がかかりすぎている場合にタスクを停止することもできます。

 Windows Vistaの新しいタスクスケジューラの機能の詳細、およびWindows VistaとWindows XPやWindows Server 2003のタスクスケジューラの比較については、Mycrosoft TechNetにある「Windows Vistaのタスクスケジューラ」のページを参照ください。

 Windows Vistaでタスクスケジューラを使ってPHPスクリプトを実行するには、次の手順を実行します。

  1. [スタート]→[すべてのプログラム]→[アクセサリ]→[システムツール]→[タスクスケジューラ]を選択し、タスクスケジューラを起動します。
  2. [タスクスケジューラ]ウィンドウで、[操作]→[タスクの作成]を選択します。
  3. [タスクの作成]ウィンドウの[全般]タブで、タスクの名前を入力し、必要に応じて説明を入力します(図5を参照)。
  4. 図5 タスクスケジューラの[全般]タブ。タスクの名前と、必要に応じて説明を入力し、その他のいくつかの設定を行う
    図5 タスクスケジューラの[全般]タブ。タスクの名前と、必要に応じて説明を入力し、その他のいくつかの設定を行う
  5. [タスクの作成]ウィンドウの[操作]タブで、[新規]ボタンをクリックします(図6の上を参照)。次に、操作を選択します(図6の下を参照)。PHPスクリプトを実行する場合は、[プログラムの開始]オプションを選択します。
  6. 図6 タスクスケジューラの[操作]タブ。新しい操作を作成するには、[新規]ボタンをクリックし、[プログラムの開始]操作を選択する
    図6 タスクスケジューラの[操作]タブ。新しい操作を作成するには、[新規]ボタンをクリックし、[プログラムの開始]操作を選択する
  7. [条件]タブで、タスクを実行するための条件を指定します。設定した条件が真にならない限り、タスクは実行されません(図7を参照)。
  8. 図7 タスクスケジューラの[条件]タブ。タスクを実行するための条件を指定する
    図7 タスクスケジューラの[条件]タブ。タスクを実行するための条件を指定する
  9. [設定]タブ(図8を参照)では、タスクの動作に影響する追加設定を指定します。タスクが失敗した場合や、最大許容時間を超えて実行されている場合の処理方法などを指定できます。設定が終わったら、[OK]をクリックします。
  10. 図8 タスクスケジューラの[設定]タブ。最大許容時間、再起動の回数など、操作の追加設定を指定できる
    図8 タスクスケジューラの[設定]タブ。最大許容時間、再起動の回数など、操作の追加設定を指定できる
  11. 最後に、メインの[タスクスケジューラ]ウィンドウで、操作(ここではruncron)を選択し、[実行]ボタンをクリックしてPHPスクリプトを実行します(図9を参照)。
  12. 図9 新しいタスクを実行する。新しいタスクをテストするには、メインの[タスクスケジューラ]ウィンドウで[実行]ボタン(円で囲んだ部分)をクリックする
    図9 新しいタスクを実行する。新しいタスクをテストするには、メインの[タスクスケジューラ]ウィンドウで[実行]ボタン(円で囲んだ部分)をクリックする

 何も問題がなければ、「logs」ディレクトリにタスクの実行結果が作成されます。これでWindows Vistaでのcronの作成は終わりです。次に説明するように、Windows XPではこの作業をはるかに簡単に行うことができます。

次のページ
Windows XPでPHPのcronを実行する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Octavia Andreea Anghel(Octavia Andreea Anghel)

経験豊富なPHP開発者。現在は、国内外のソフトウェア開発コンテストに参加するプログラミングチームの主任トレーナーを務める。国レベルの教育プロジェクト開発のコンサルティングも担当している。共著書に『XML technologies?XML in Java』があり、XML部分の執筆を担当。PHPやXML...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3382 2009/01/13 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング