CPanel内でcronジョブを使用してPHPスクリプトを実行しようとしていますが、これは正しい構文ですか。
/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null
Cronが完了したことを通知する電子メール通知を受け取っていません。PHPファイルで特定のことを行う必要がありますか?
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を監視できます
このコマンドを使用して、このためのcronジョブをアクティブにしました。
/usr/bin/php -q /home/username/public_html/yourfilename.php
godaddyサーバー上で動作します。
>/dev/null
は、cronによるメールの送信を停止します。
実際には、php
スクリプト自体を作成して、単にcronに出力するのではなく、ログを記録するようにした方が良いと思います
これが最も簡単な方法です。
php -f /home/your_username/public_html/script.php
また、スクリプト出力をファイルに記録する場合は、コマンドの最後にこれを追加します。
>> /home/your_username/logs/someFile.txt 2>&1
これが方法です:
/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null
このcron行は、cpanelを使用したhostgator VPSで機能しました。
/usr/bin/php -q /home/username/public_html/scriptname.php
CPanelは「cli」ではなく「cgi-fcgi」バイナリとしてコンパイルされるため、CPanelで/ usr/bin/phpを使用する際に問題が発生しました。/usr/local/bin/phpを使用するか、いずれにしてもパスの先頭にあるので、代わりに 'php'を使用してください:
php /path/to/script.php
スクリプトを実行可能ファイルとして実行する場合は、+ x permsを指定し、スクリプトの最初の行として次を使用します。
#!/usr/bin/env php
あなたの問題がパスと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
私はそれが役立つことを願っています。
これは正常に機能し、メールも送信します。
/ 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
専門家による提案
/usr/local/bin/php /home/username/public_html/path/to/cron/script
実際には非常に単純ですが、
php -q /home/username/public_html/cron/cron.php
ドメイン固有の場合Multi PHP Cron Job、このようにします、
/usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script
上記の例では、「ea-php56」を、使用するドメインに割り当てられているPHPバージョンに置き換えます。
これが誰かを助けることを願っています。