質問
Plesk 内で crontab を使用してテスト スクリプトを実行しようとしています。php ファイルはメッセージを電子メールで送信するだけです
mail('me@somewhere.com','Cron Test','Test');
私のphpへのパスは/user/bin/phpです
次のコマンドでスクリプトを毎分実行するために、すべてのフィールドに * を入力しました。
/usr/bin/php -q /usr/httpdocs/crontest.php
ただし、スクリプトは実行されていません。
誰か助けてくれませんか?
これまで cron を使用したことがないため、単純な何かが欠けている可能性があります。
アドバイスをいただければ幸いです。
ありがとう。
解決
私はそれがログファイルへの書き込みを取得することによって開始します。例えばます:
* * * * * /usr/bin/php -q /usr/httpdocs/crontest.php >> /a-location/crontest.log 2>&1
この意志は、少なくともあなたのphpなどを見つけることができないような任意の明白なエラーを与えます。
他のヒント
私はPleskの中に、ユーザーベースのcronを使用した場合、多くの問題があることがわかりました
まず、私はあなたが仮想ドメインからスクリプトを参照すべきであることがわかりました。スクリプトが/var/www/vhosts/domain.com/httpdocs/email-this.phpの絶対アドレスを持っている場合は、crontabの中をhttpdocs /メール-this.phpとしてそれを参照する必要があります。
第二には、スクリプトはなく、彼らがどのような、非常に特別な権限を持たなければならない「でなければなりません。」 apacheの:Apacheは、これまで私のために働いているすべてです。でも、グループ書き込み権限セットと、ユーザーはapacheのでなければなりませんでした...奇妙ます。
第三に、テストを行うための最も簡単な方法は、バックのPleskに私は変更を行うために必要なすべての時間を行く編集する代わりに、直接のcrontabのだった...編集このようなあなたのcrontabます:
のcrontab -u [ファイルシステム名] -e
第四に、私は(私が...笑...統計/ログ/ cron_log何のサイコロを私が思いつく限りの方法を試していない)をhttpdocsのログファイルの外部への書き込みへのcrontabを取得することができませんでした。
:私はちょうどテスト時のcrontabファイルの先頭にMAILTOディレクティブを追加することになりました例:
MAILTO=you@domain.com
## * * * * * php -q httpdocs/cron.php
Plesk 10 以降を使用している場合は、これも参照してください。 http://shaun.net/2011/09/solve-plesk-10-3-1-cron-issues/
これをしなければならなかった
/usr/local/psa/bin/server_pref -u -crontab-secure-shell "/bin/sh"
これ(例)を機能させるには:wget -O - http://www.yourdomain.com/cron.php