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