2011-12-06 4 views
1

私はWindows上で開発してきました。今日私はLinuxベースのウェブホストに自分のファイルを移動しました。私はそれに気づいた:Linuxホストでrequire_onceが失敗しますか?

require_once dirpath(__FILE__) . DIRECTORY_SEPARATOR . "foo.php"` 

ファイルが見つかりませんでしたエラーで失敗しています。

ファイルが存在することが予想される場所に存在することがわかります。

このような既知の問題がありますか?

編集1:

私はそれが理由Linuxは大文字と小文字を区別環境であることの疑いがあるかもしれません。私はすべての私のラクダのケースファイル名を小文字に変換しました。私はまだ問題を抱えています。残念ながら、私のホストはリモートtelnetアクセスを許可していません。私はcpanelしか使用できません。他にも提案はありますか?

編集2:

これは、ファイル名の大文字と小文字の区別の問題であることが判明しました。なぜ私はcpanelが私の側で混乱につながった正しいケースでそれらを表示していたのですか?私はすべての小文字を使用するために名前を変換してからサーバーにアップロードしなければなりませんでした。 Gitはファイル名の大文字小文字を変更しようとしたときに私に多くの問題をもたらしましたが、それは別の日の話です。

答えて

4

は、WindowsからLinuxへ移動した場合はファイルシステム内の1つの問題があります:

Linuxは、大文字と小文字が区別されます!

これは、Windowsの "foo.php"と "Foo.php"はまったく同じファイルですが、Linuxではそうではありません。 "Foo.php"をお持ちの場合は、 "foo.php"を検索して見つけられません。

1

エコーアウトdirpath(__FILE__) . DIRECTORY_SEPARATOR . "foo.php"
あなたは100%その正しいディレクトリであることを確信しています。私はそれがそうでないと賭けて喜んで...

それ以外の場合は、再確認する必要がある許可問題です。

+0

投稿する前にこれを行いました。ファイルはそこにあります。興味深いのはfileexists(filename)がfalseを返すことです。私はcpanelでファイルを参照してください。残念ながら、私はサーバーにtelnetできません。 phpファイルにはどのようなパーマが必要ですか? –

+0

is_readable($ filename)を試して、受け取った出力を教えてもらえますか? – macjohn

+0

通常、 'SSH'はホストにtelnetしないので、telnetは非常に安全です。 – Jakub

0

ls -al foo.phpディレクトリが存在する場合、不正なファイルアクセス権がある可能性があります。

関連する問題