ホームページ  >  記事  >  バックエンド開発  >  crontab で php が実行できない場合はどうすればよいですか?

crontab で php が実行できない場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2020-07-27 10:59:292814ブラウズ

crontab で php が実行できない場合の解決策: 1. php プログラムにログを書き込む; 2. crontab で実行結果をファイルに出力する; 3. crontab を使用して php を実行する; 4. php で絶対パスを使用するコード内のパス。

crontab で php が実行できない場合はどうすればよいですか?

推奨: 「PHP チュートリアル

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

X がない場合は、実行権限がないことを意味し、もちろん実行できません。ログインしているユーザーが所属するグループに権限があるかどうかが不明な場合は、すべてのグループに権限を追加してください。方法は次のとおりです:

コードは次のとおりです:

[root@linux cron]# chmod +x ./del_redis.php

2. 実行権限があるのに実行できない場合

解決策は次のとおりです。 :

1. php の場合 crontab は定期的に実行されるため、プログラム内にログを書き込む必要もあります (例: 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 コードで絶対パスを使用します

以上がcrontab で php が実行できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。