この記事では、crontabがphpを実行できない問題の解決策を分析します。参考のために皆さんと共有してください。詳細は次のとおりです:
crontab を使用して PHP プログラムを実行する場合、誰もが独自のデバッグ方法を持っています。 crontab が PHP プログラムを実行できない問題をどのように解決したかを見てみましょう。
1.phpファイルに実行権限があるか
コードをコピーします コードは次のとおりです: [root@linux cron]# ls -al |grep del
-rwxr-xr-x 1 zwh ftpgroup 494 10-20 16:42 del_redis.php
×が付いていない場合は実行権限がないことを意味し、当然実行できません。ログインしているユーザーが所属するグループに権限があるかどうかが不明な場合は、すべてのグループに権限を追加してください。方法は次のとおりです:
コードをコピーします コードは次のとおりです: [root@linux cron]# chmod +x ./del_redis.php
2. 実行権限がある場合でも実行できません
解決策は次のとおりです:
1. PHP プログラムにログを書き込みます (例: error_log() 関数)。これも必要です。ログがない場合、プログラムの実行結果を知るにはどうすればよいですか。このようにして、crontab の実行状況をログで確認できます。
2. crontabで実行結果を直接ファイルに出力することもできます。次に、このファイルの実行ステータスを確認します。例:
コードをコピーします コードは次のとおりです:*/10 * * * * /usr/local/php/bin/php /var/www/cron/del_redis.php >> /home/zhangy/cron .txt
3. crontab を使用して PHP を実行するには、Apache や nginx が必要ないため、$_SERVER や $_ENV などの変数はまったく使用できません。したがって、PHPコードにそのような変数があるかどうかを確認し、存在する場合は削除してください。
4. PHP の相対パスの問題
この問題は、固定観念のせいで最も無視されやすい問題でもあります。
コードをコピーします コードは次のとおりです: include_once'./mysql.php';
PHP コードで相対パスが使用されている場合、そのディレクトリに入って /usr/local/php/bin/php /var/www/cron/level_rank.php を実行した後でのみ有効になります。私はこの問題に少なくとも2回遭遇しましたが、もう一度遭遇するとまだ思い出せません。
解決策は次のとおりです:
コードをコピーします コードは次のとおりです:*/10 * * * * cd /var/www/cron && /usr/local/php/bin/php /var/www/cron/level_rank.php
または、PHP コードで絶対パスを使用します
さらに PHP 関連のコンテンツに興味のある読者は、このサイトの特別トピック「PHP 基本構文の入門チュートリアル」と「PHP オブジェクト指向プログラミングの入門チュートリアル」をチェックしてください
この記事が PHP プログラミングのすべての人に役立つことを願っています。