web-dev-qa-db-ja.com

PHPを使用してWindowsでcronジョブを設定する

PHPを使用してcronジョブを設定する方法を探しています。 PHPスクリプトを特定の時間に実行します。サーバーがスクリプトを実行するように指定された時間に従って、ユーザーが最初にスクリプトに時間を入力します。私はWindows 7およびxampp。

私が見つけたのは:

  1. Cron.phpファイルを呼び出すphpファイルを作成します。メモ帳(またはその他)を使用して、以下を新しいファイルに貼り付けます。$ data = file(“ http://pearl.supplychain.com/cron.php”);通常のphpタグ内に「より小記号」を付けて配置する必要がありますか?フロントのphp、および?最後に「記号より大きい」。 (「疑わしいコンテンツ」であり、drupalは許可されていないため、単に入力するようには見えません)executecron.phpとして、cron.phpと同じディレクトリに保存します( htdocs)。

  2. これを定期的に呼び出すスケジュールされたタスクを設定します。

    1. [スタート]-[すべてのプログラム]-[アクセサリ]-[システムツール]-[スケジュールされたタスク]を開きます。
    2. スケジュールされたタスクをダブルクリックします。
    3. 午前12:00に開始し、午後11:59まで30分ごと(または何でも)に実行する毎日のタスクを設定します。以下を「実行」するようにタスクに指示します。

      C:\cms\xampp\php\php.exe c:\cms\xampp\htdocs\executecron.php
      

      (このシステムでは、php.exeはC:\ cms\xampp\phpにインストールされていますが、おそらくパスを変更する必要があります)。

ご覧のとおり、これを行うにはOpen Start–All Programs–Accessories–System tools–Scheduled tasks.

PHPコードまたはこれを行う別の方法を使用して特定できますか?私は私のユーザーがcronジョブ自体を構成する必要があるのではなく、php /サーバーですべての作業を実行したいので。これは、phpコードでサーバーにcronを設定してサーバーがcronを確認できるようにすることを意味しますか?

ステフゴセリンへ:

バッチファイルを作成するには

Open Notepad.
Paste the line "C:\xampp\php\php.exe C:\wamp\www\index.php"
Click "File" -> "Save As"
Ensure "Save as type:" is set to "All Files"
Save the file as "cron.bat" to your C drive

バッチファイルの実行をスケジュールするには

Open Command Prompt
Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat"
Press Enter
This will make the script run every 20 minutes, the first time 20 minutes from now.

Phpを使用してバスファイルを作成できますが、Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat osの代わりにphpを使用しますか?ありがとうございました

ありがとうございました

11
Leo Chan

Waytocode.comでその質問に対する私の答えを見つけました

これらは、Windowsでcronジョブを実行するための3つの可能なソリューションを提供します。

Solution-1タスクスケジューラを使用

Windows 7/windows 2005/2008の場合。

スタートメニュー->すべてのプログラム->アクセサリ->システムツール->タスクスケジューラ->タスクの作成

新しいウィンドウで:

  1. 全般(タスク名を入力し、テストの場合は「ユーザーがログインしたときに実行」を選択できます)

  2. トリガー(実行間隔を「毎日、毎週、毎月」として選択できます。)

  3. アクション(これは最も重要な部分です。「プログラム/スクリプト」としてMozilla firefoxを選択し、引数でMozilla firefoxで起動するURLを指定します)。

Solution-2タスクスケジューラとPHPをXAMPPサーバーから使用して

Windows XPでは、何もコピーまたはインストールする必要はありません(すでにPHPがXAMPPのようなサーバーにインストールされています)

Goto Task Scheduler

タスクを作成して実行時間を与え、次に「RUN」コマンドのテキストボックスタイプの詳細設定オプションで

C:\xampp\php\php.exe -f c:/xampp/htdocs/waytocode/mycron.php

Windows 7 /サーバー2005/2008

何もコピーまたはインストールする必要はありません(すでにPHPがサーバーにインストールされています)

「プログラム/スクリプト」コマンドのテキストボックスタイプのアクション設定オプションで、トリガー設定で実行時間を与えるタスクを作成します。

C:\xampp\php\php.exe

「引数を追加(オプション)」タイプ

-f c:/xampp/htdocs/mycron.php

Solution–3* nixシステムからのcronジョブをシミュレートするWindows exeファイルをインストールします

サーバーまたは開発マシンにexeファイルをインストールしたくない、が、彼らが投稿したソリューションを提供します:

Windows XPでは、2 DLL wget.exeを含むファイルをすべてC:\ windowsフォルダにコピーします

タスクを作成して、「実行」コマンドのテキストボックスタイプの「実行時間を指定してから詳細設定」オプションを指定します

C:\Windows\wget.exe -q -O NUL http://localhost/mycron.php

Windows 7/server 2005/2008では、2 DLL wget.exeを含むファイルをすべてC:\ windowsフォルダにコピーします

タスクを作成し、「プログラム/スクリプト」コマンドのテキストボックスタイプで「実行時間を指定してから詳細設定」オプションを指定します

C:\Windows\wget.exe

「引数を追加(オプション)」タイプ

-q -O NUL http://localhost/mycron.php

Solution-4.batファイルとタスクスケジューラを使用

ここStackoverflowでそれを見つけました、そしてそれは最初の2に似ています:

  1. Cron.phpファイルを作成します(定期的に実行するコード)

  2. CRON.BATファイルを作成し、以下のコードをファイルにコピーして貼り付けます。

    D:\ xampp\php\php.exe D:\ xampp\htdocs\Application\cron.php

私が書いたパスは、私のxamppおよびcron.phpファイルに従っており、システムディレクトリに従ってファイルのパスを更新します

  1. タスクをスケジュールするには[スタート]> [すべてのプログラム]> [アクセサリ]> [システムツール]> [スケジュールされたタスク]をクリックします

または、[コントロールパネル]> [スケジュールされたタスク]に直接移動することもできます

[新規]> [タスクのスケジュール]フォルダーを右クリックします。

タスクに適切な名前を付けます。 RUNテキストフィールドに…私の場合はCRON.BATファイルの完全なパスを入力します

D:\xampp\htdocs\Application\CRON.BAT

ジョブのスケジュールを設定します。必要に応じて、詳細ボタンを使用できます。

Solution-5

1つのスクリプトが他の誰かのWebサイトに依存することはできないので、私はそれも好きではありませんが、それはとにかく解決策です。

外部のオンラインcronジョブサービスを使用します。

https://www.google.ca/search?q=cron+job+online+service

あなたにとってより適切なソリューションを1つ選択してください。これが誰かを助けることを願っています。

[〜#〜]更新[〜#〜]

Solution-6(以下の回答に基づいており、CodeIgniterでも動作します!)

Cron.batファイルを作成し、次のコマンドを記述して保存します。

@ECHO OFF
c:
cd C:\Program Files\Internet Explorer
START iexplore.exe http://localhost/path/to/cron/job/1

「プログラム/スクリプト」コマンドのテキストボックスタイプのアクション設定オプションで、トリガー設定で実行時間を与えるタスクを作成します。

C:\xampp\path\htdocs\folder\includes\cron.bat

END UPDATE

あなたの質問に答える:

PHPコードまたはこれを行う別の方法を使用して特定できますか?私は私のユーザーがcronジョブ自体を構成する必要があるのではなく、php /サーバーですべての作業を実行したいので。これは、phpコードでサーバーにcronを設定してサーバーがcronを確認できるようにすることを意味しますか?

これを行うには他の方法があります:

PHP PHP内からのcronマネージャーの使用 =内からのcronマネージャーの使用==

PHP http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php-2--net-19428 によるcronジョブの管理

残念ながら、PHPを使用するすべてのソリューションは、* nixサーバータイプおよび/またはcPanelを必要とし、実装が多少複雑になります。

39
Adrian P.

OK、私が正しく理解していれば、ユーザーがタスクを作成しなくても、システム上でcronジョブを作成したいと思います。

基本的に、これは.batファイルで簡単に行うことができます(phpから呼び出すこともできます)。 schtasksアプリは、スケジュールされたタスクの作成を簡単に自動化できます。例えば:

schtasks /create /tn UNO /tr YOURAPP.EXE /sc HOURLY /mo 2

この気の利いたアプリケーションの詳細については、 公式のMSサポートページ を参照してください。

ユーザーにとってさらに簡単なもう1つのオプションは、インストーラーを使用することです。私は自分でそれほど多くのWindowsアプリを作成していませんが、 [〜#〜] nsis [〜#〜] で遊ぶ楽しみがありました。このアプリには、スケジュールされたタスクを作成するオプションもあります。他の機能はここで名前を付けるには数が多すぎます。ユーザーがインストール可能なパッケージが必要な場合は、強くお勧めします。

それが幸せなコーディングの友人に役立つことを願っています。

2
stefgosselin

別の優れたツールがWindowsで無料で利用できます。nncronです。 unixのcronとまったく同じ構文を使用します。

http://www.nncron.ru/

この恐ろしいschtasksを管理する方が簡単だと思います:)

ライトバージョンは、私が使用することをお勧めします。フルバージョンでは、構成ファイルのスクリプトをサポートしています。それは便利かもしれませんが、通常のcronジョブではどういうわけか殺されました。

2
Pierre

WindowsでCronを作成する手順:

ステップ1> .batファイルを作成する

    1. open notepad.
    2. click File -> Save As.
    3.Give the file a name i.e. MyBatchFile.bat Underneath the filename box change the file type to All Files. The .bat on the end of the filename will instruct the PC to open it as a batch file.

ステップ2> MyBatchFile.batに次のコマンドを書き込む

    ECHO OFF
    START File Full Path write here like http://www.google.com

ステップ3> [スタート]-[すべてのプログラム]-[アクセサリ]-[システムツール]-[スケジュールされたタスク]を開きます。右側のバーからタスクの作成をクリックします。名前:任意のトリガー:ドロップダウンから時間を設定し、1日ごとに選択するアクション:.batファイルを選択する[OK]ボタンをクリックする

0
user2293605

別の非常に単純なアプローチは、php-fileのコンテンツを取得するpowershellです。

タスクスケジューラ、ターゲット:Powershell.exe、引数を使用:

-Command "(New-Object Net.WebClient).DownloadString('http://myhost/cron/cron.php')"

(アップ、古いポスト)

0
dognose

これは、windows 10の自分のプロジェクトで試した完全なソリューションです。

1)「start」メニューに移動し、「task scheduler」を検索します「それを開きます。

  • 権限の問題に直面している場合は、「システム管理者として実行」として開きます。このオプションは「開く」のすぐ下にあります。

  • それでも権限の問題が発生している場合は、システム管理者に連絡してください。

2)右側のサイドバーとウィンドウの「新しいタスク」をクリックします開かれます。

3)このウィンドウでは、「general」タブがデフォルトで選択されています。タスクに適切な名前を付け、必要に応じて短い説明を提供します。

4)「triggers」に移動し、実行したい頻度をここに設定し、必要に応じて日時を開始します。パラメータが必要です。

5)「Actions」タブに移動します。これが最も重要な部分です。

  • Program/script」に、「php.exe "。

  • Start in」に、cronの目的のphpファイルがあるフォルダーの絶対パスを記述します。

  • Add arguments」に、タスクジョブで実行したいPHPファイルの名前を記述します。

    • Add arguments」では、phpファイル名の後に区切られたファイルスペースへの引数を指定することもできます。テキストまたは特殊文字がある場合は、二重引用符で囲みます。

    • スクリプトに引数を指定すると、それらはそれぞれ$ argv [1]、$ argv [2]などで受け取ります。

詳細については、以下をご覧ください。 https://medium.com/@shraddha_kulkarni/run-php-cron-in-windows-513fb1aa53a5

0