2009-03-28 25 views
4

私はこれに関する多くの質問と記事を見つけましたが、まだいくつかの難しさがあります。 私は次のコマンドを使用しています /usr/bin/php home/domain.com/public_html/cron/script.php ステータス:404が見つかりません X-Powered-By:PHP/5.2 .8 コンテンツタイプ:text/htmlcronでPHPスクリプトを実行するには

入力ファイルが指定されていません。

私は感謝し、ファイルがdomain.com/cron/script.php Anyideasでホストされている、CPanelのを使用しています:P

答えて

5

試してみてください。

wget -O - http://domain.com/cron/script.php 

、あなたがより良いを取得するかどうかを確認結果。

編集:出力をホームフォルダに書き込まないように " - O - "を追加しました。

+0

マインはうまくいくかもしれませんが、より良い理由の答えが見えます。 –

+0

これはうまく動作します!私のPHP Scriptには、電子メールのスケジュールを設定するコマンドもいくつかあります。ありがとう@ Lacqui – McElie

11

あなたはされてランダムな第三者を気にしないあなたが実際にWeb経由でスクリプトを実行する場合を除き、lacquiの答えのように、すなわち、スクリプト名に

/usr/bin/php /home/domain.com/public_html/cron/script.php 

を先頭のスラッシュを入れて、彼らが好きなときにいつでもそれを動かすことができるので、あなたのpublic_htmlディレクトリの中に置く必要はありません。全く反対です。

+0

スクリプトを公開しないことについての良い点。 –

+0

OPには明らかではないので、ここで追加します:ランダムな第三者が「いつでも好きなときに」実行できるため、「何度も何度も」という意味です。 CPU集約型タスクとメモリ集約型タスクはcronジョブの候補になることが多いため、サービス拒否攻撃を簡単に受けられる可能性があります。 – chaos

+0

最初に実行されていないことを確認していない場合のみ。あなたのデータベースを使って "CRON last started at"タイムスタンプを作成してください。タイムスタンプがX分/時間の場合は、cronで実行しないでください。 – jmucchiello

1

phpの代わりにphp-cliというバイナリを使用する必要があるかもしれません。

+0

これはWindows用です。* nixでは/ usr/bin/phpだけを使用します。そして、cronの言及では、間違いなく* nix環境です。 –

+0

@cemkalyoncu:一部のシステムでは、readlineなどの余分なものが含まれている別々のphp-cliを出荷しています。コマンドラインで手軽に利用できます。 –

1

私はそれが古い問題であり、解決策を見つけたかもしれないが、上記の答えは私には役に立たず、私はcronスクリプトを実行しているときに同じ404エラーが発生していたことを認識しています。

この問題は、PHPスクリプトへのパスが書き込まれた方法に関連していました。パスはpublic_htmlから次のように始まる必要があります/usr/bin/php public_html/public/index.php

関連する問題