web-dev-qa-db-ja.com

PHP Script、WindowsのlocalhostでCronジョブを実行

Phpスクリプトがあり、スケジュールに従って実行したい。 WindowsでローカルWebサーバー(WAMPサーバー)を使用していますが、my_script.php10分ごと

PHPスクリプト、Windowsのローカルホストでcronジョブを実行する方法は?

17
Pmpr

最近、Windows 7のlocalhost(WAMPサーバー)のphpスクリプトでcronジョブを実行する際に、ある種の問題が発生しました。

ちなみに、同じことをしている人のためにこれを共有しています。

Windowsタスクスケジューラを使用して、慢性的に実行するにはshellscriptが必要です。また、php.exeを呼び出してphpスクリプトを実行するバッチスクリプト(script.bat)が必要になります(ここではmy_process.php

shellscript.vbs

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\path\to\script\script.bat" & Chr(34), 0
Set WinScriptHost = Nothing

script.bat

"C:\wamp\bin\php\php5.4.12\php.exe" -f "C:\wamp\www\website\my_process.php"

これで、必要な時間間隔でWindowsタスクスケジューラを実行してshellscript.vbsを設定する準備ができました。

  1. 開くタスクスケジューラ Windowsから開始メニュー
  2. アクションメニューに移動し、タスクの作成...を押します
  3. 一般タブで、必要に応じて名前および説明フィールドに入力します
  4. トリガータブで、新規ボタンを押します。
  5. fromタスクドロップダウンを開始し、スケジュールに基づいてを選択し、毎日を選択します
  6. 詳細設定セクションから、タスクごとに繰り返しを選択し、をdurationon 無期限
  7. onActionsタブ、ActionドロップダウンからStartプログラム
  8. Program\scriptボックスで、C:\ path\to\shellscript.vbsのようにshellscript.vbsへのパスを入力します。
  9. leaveargumentts(オプション)を追加セクションを空にします。
  10. 開始(オプション)ボックスに、C:\path\to\のようなshellscript.vbsの親ディレクトリを入力します。
  11. このチュートリアルに賛成票を投じてください:)楽しんでください。
40
Pmpr

Trixからの回答を使用し、Metafanielと同じ問題が発生する場合:

問題があります。この手順では、タスクが実行されていますが、phpスクリプトが実行されていないため、「開く」ダイアログが表示されます。タスクのプロパティが表示される場合は、提案どおりにvbsファイルに設定しても、ActionName C:\ Windows\system32\OpenWith.exeと表示されます。私は何を間違えていますか?

これを使用する必要があります:

  1. 代わりに、「C:\ path\to\shellscript.vbsのようなshellscript.vbsへのパスを入力してください。」 「C:\ Windows\System32\wscript.exe」を使用します
  2. 代わりに、「引数を追加(オプション)セクションを空のままにする」を使用します(引用符付き):「C:\ path\to\shellscript.vbs」
1
DimaX

特定の時間にcron.phpを実行するようにWindowsマシンをセットアップするには、以下の特定の指示に従ってください。これは、Linux/Unixに慣れていない場合、またはWebホストがcronジョブを実行する機能を提供していない場合に役立ちます。自分のコンピューターからリモートで実行できます。

注:これらの手順は、Windows XP向けに書かれていますが、Windowsの他のバージョンでも同様である必要があります。

https://www.drupal.org/node/31506

1
Ravi Chauhan