ファイルに書き込む d PHP スクリプトを取得しようとinclude
していますが、パスが思いどおりに解決されません。シナリオは次のとおりです。
実行中のスクリプト (呼び出しスクリプト) は Web アクセス可能です。入力をhttp://example.com/script1.php
省略できるように、example.com の絶対パスの Apache ドキュメント ルートは /home/jweinberger/com.example/ とします。
(絶対パス) に別のスクリプトがあります。/home/jweinberger/scripts/script2.php.
script1.php には、問題なく動作する が含まれてinclude('/home/jweinberger/script2.php)
います。
script2.php はfopen('/home/jweinberger/logs/script1.log')
どれが失敗するかを試みます。エラーメッセージには、開こうとしていることが示されています。
/home/jweinberger/com.example/logs/script1.log//home/jweinberger/logs/script1.log
明らかに、呼び出し元のスクリプトの Apache ドキュメント ルートを先頭に追加していますが、これは望ましくありません。
すべてのパスを絶対に指定しました (相対パスはまったく指定しません)。safe_mode
がオフで、doc_root が空で、cgi.force_redirect が php.ini に設定されていません。これはPHP 5.2.17
(私の Web ホストによって提供されます - 私はアップグレードを制御できません)
そして、問題があれば、script2.php は CGI によって呼び出されたときではなく、CLI スクリプトによって呼び出されたときに正しいファイルを正常に開きます。
script2.php で正しいファイルを正常に開くために私ができることについて、誰かアドバイスや指示を与えることはできますか?
大変ありがたく存じます。