2011-10-26 11 views
8

私はMediaWikiを使用していますが、エラーがあります。私はファイルでそれを見つけました。realpathは空の文字列を返します

$IP = realpath('.'); 

$ IPは空の文字列を返すので、システム内のファイルへのパスは機能しません。 (たとえば、$ IPが.またはE:/path_to_wwwrootの場合)。どうすれば問題を解決できますか?私のプロバイダがrealpathへのアクセスをブロックした可能性はありますか?

ありがとうございます!

+0

'。/'で喜んでいただけますか?違いはありませんが、ショットに値するかもしれません... – DaveRandom

+0

いいえ:-($ IPはまだ空ですが、たとえばbasenameが動作しますが、私はそれを使用しません。なぜこのエラーが出るのか知りたいのです。 realpathでエラーが多く発生する可能性があります:-( – Jordy

+1

また、存在しないファイルに対して 'realpath()'は動作しません。 – Thamaraiselvam

答えて

14

出典:http://php.net/manual/en/function.realpath.php

注:実行中のスクリプトが階層内のすべてのディレクトリに実行権限を持っている必要があり、そうでない場合はrealpath()はFALSEを返します。

したがって、WebサーバーはWebroot前のディレクトリにもアクセスできる必要があります。

+2

wwwrootのすべてのディレクトリまたはwwwroot以外のファイル? – Jordy

+0

うわー、それは問題を解決しました!多くのおかげで、私のサブドメインマップからの読み取り権限を変更する必要がありました。ありがとう!!! – Jordy

+0

私は "ポータブル" PHP + NGINXアプリWT-NMPと私サンドボックスされたPHPアプリケーションは、私がphp.iniのopen_basedirに指定したパスの外のライブラリを参照していました。私はopen_basedirにライブラリパスを追加することで解決しました(Windowsでは ";"区切り文字を使用します)。 – ftexperts

0

私は現在、コマンドラインからPHPを実行しても、HTTPリクエスト内ではなく、この結果が発生しています。どこかでconfigや$ _SERVERの設定になってしまい、修正が見つかると更新されます。

関連する問題