ホームページ >バックエンド開発 >PHPチュートリアル >crontabがphpを実行できない場合の解決策

crontabがphpを実行できない場合の解決策

WBOY
WBOYオリジナル
2016-07-29 09:05:04933ブラウズ

この記事では、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

次に、実行権限がある場合は、まだ実行できません


解決策は次のとおりです

: 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 オブジェクト指向プログラミング入門チュートリアル」

この記事で説明した内容が、PHP プログラミングに携わる皆様のお役に立てれば幸いです。

上記は、crontab が PHP を実行できない問題の解決策を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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