1

Plesk内でcrontabを使用してテストスクリプトを実行しようとしています。phpファイルは単に私にメッセージをメールで送信します

mail('me@somewhere.com','Cron Test','Test');  

phpへの私のパスは/user/ bin/phpです

次のコマンドを使用してスクリプトを毎分実行するために、すべてのフィールドに*を入力しました。

/usr/bin/php -q /usr/httpdocs/crontest.php

ただし、スクリプトは実行されていません。

誰か助けてもらえますか?

私はおそらく単純なものが欠けています。これまでcronを使用したことはありません。

アドバイスをいただければ幸いです。

ありがとう。

4

3 に答える 3

2

ログファイルに書き込むことから始めます。例えば:

* * * * * /usr/bin/php -q /usr/httpdocs/crontest.php >> /a-location/crontest.log 2>&1

これにより、少なくともphpが見つからないなどの明らかなエラーが発生します.

于 2009-11-25T12:31:11.457 に答える
1

plesk でユーザーベースの cron を使用すると、いくつかの問題があることがわかりました。

最初に、仮想ドメインからスクリプトを参照する必要があることがわかりました。スクリプトの絶対アドレスが /var/www/vhosts/domain.com/httpdocs/email-this.php の場合、crontab で httpdocs/email-this.php として参照する必要があります。

第 2 に、スクリプトには非常に特殊なアクセス許可が必要ですが、それらが「どうあるべきか」がわかりません。apache:apache は私にとってこれまでに機能したすべてです。グループの書き込み許可が設定されていても、ユーザーはまだApacheでなければなりません...奇妙です。

第三に、テストを行う最も簡単な方法は、変更が必要になるたびに plesk に戻るのではなく、crontab を直接編集することでした... 次のように crontab を編集します。

crontab -u [ファイルシステムのユーザー名] -e

第 4 に、httpdocs 以外のログ ファイルに crontab を書き込むことができませんでした (思いつく限りの方法で statistics/logs/cron_log を試しました... 笑... ダイスはありません)。テスト中に crontab ファイルの先頭に MAILTO ディレクティブを追加するだけになりました。

例えば:

MAILTO=you@domain.com
##      *       *       *       *       *       php -q httpdocs/cron.php
于 2011-01-31T19:49:34.587 に答える