web-dev-qa-db-ja.com

CPanelを使用してcronジョブでPHPファイルを実行します

CPanel内でcronジョブを使用してPHPスクリプトを実行しようとしていますが、これは正しい構文ですか。

/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null

Cronが完了したことを通知する電子メール通知を受け取っていません。PHPファイルで特定のことを行う必要がありますか?

97
Zabs

Crontabシステムで:

  • /usr/bin/phpはphpバイナリパスです(一部のシステムでは異なります:freebsd /usr/local/bin/php、Linux:/usr/bin/php
  • /home/username/public_html/cron/cron.phpはphpスクリプトパスである必要があります
  • /dev/nullはcron出力である必要があります。例:/home/username/stdoutx.txt

したがって、cron出力/home/username/stdoutx.txtを表示して、cronを監視できます

63
Somy A

このコマンドを使用して、このためのcronジョブをアクティブにしました。

/usr/bin/php -q /home/username/public_html/yourfilename.php

godaddyサーバー上で動作します。

102
Pank

>/dev/nullは、cronによるメールの送信を停止します。

実際には、phpスクリプト自体を作成して、単にcronに出力するのではなく、ログを記録するようにした方が良いと思います

29
k102

これが最も簡単な方法です。

php -f /home/your_username/public_html/script.php

また、スクリプト出力をファイルに記録する場合は、コマンドの最後にこれを追加します。

>> /home/your_username/logs/someFile.txt 2>&1

18
Emmanuel

これが方法です:

/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null
15
Asi

このcron行は、cpanelを使用したhostgator VPSで機能しました。

/usr/bin/php -q /home/username/public_html/scriptname.php
11
Mike Volmar

CPanelは「cli」ではなく「cgi-fcgi」バイナリとしてコンパイルされるため、CPanelで/ usr/bin/phpを使用する際に問題が発生しました。/usr/local/bin/phpを使用するか、いずれにしてもパスの先頭にあるので、代わりに 'php'を使用してください:

php /path/to/script.php

スクリプトを実行可能ファイルとして実行する場合は、+ x permsを指定し、スクリプトの最初の行として次を使用します。

#!/usr/bin/env php
9
BenKennish

あなたの問題がパスとPHPバイナリにもあることを願っています。古い回答に従ってパスを修正した場合は、cronジョブの実行中にphpコマンドの代わりにphp-cliを使用してください。

php_sapi_name()cliを返していない可能性があります。 cgi-fcgiなどのような他の何かを返す.

/usr/bin/php-cli -q /home/username/public_html/cron/cron.php >/dev/null

私はそれが役立つことを願っています。

6
Lakin Mohapatra

これは正常に機能し、メールも送信します。

/ usr/bin/php /home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php

次の2つのコマンドも正常に機能しますが、電子メールは送信しません。

/ usr/bin/php -f/home/Same As Above

php -f/home/Same As Above

3
Sajjad

専門家による提案

/usr/local/bin/php /home/username/public_html/path/to/cron/script
2
Ali Akram

実際には非常に単純ですが、

php -q /home/username/public_html/cron/cron.php
1

ドメイン固有の場合Multi PHP Cron Job、このようにします、

/usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script

上記の例では、「ea-php56」を、使用するドメインに割り当てられているPHPバージョンに置き換えます。

これが誰かを助けることを願っています。

0
Anjana Silva