今日、同僚が突然、スケジュールされたタスクを実行するために作成した PHP スクリプトが常に実行に失敗すると言いました。
スクリプト自体は非常に単純で、いくつかのライブラリファイルが含まれており、関数を実行するだけです。この関数は他の場所で呼び出されており、問題はありません。ブラウザを使用してローカルでページにアクセスしましたが、同僚のスケジュールされたタスクに問題はなかったようです。コマンドラインを再度開き、phpを使用してスクリプトを直接実行すると、このエラーが報告されました。これは、パスが間違っていたようです。
原因は分かりませんが、エラーレポートを見る限り、相対パスが関係しているようなので、相対パスを全て絶対パスに変更しました。再度実行すると問題は解決しました。
Baiduで検索したところ、PHPを使用してスクリプトを実行する場合、スクリプトが実行される場所は現在PHPコマンドが実行されているパスになるため、相対パスが間違っていることがわかりました。この問題を解決するには 2 つの方法があります:
1. 代わりに絶対パスを使用します。これは、すべてのインクルードファイルに含まれるファイルパスが含まれているため、どれかが間違っているとエラーが発生する可能性があるため、ファイルを実行する場合にのみ使用できます。単純。
2. chdir関数を使用して、現在の実行ディレクトリをファイルがあるディレクトリに変更します chdir(dirname(__FILE__));