2011-12-13 25 views
0

私はPHPアプリケーションを作成していますが、私はちょうど実際には間違ったエラーが発生しました。最近の新しい(Ubuntu)サーバーへの移行の後、私はrequire_onceステートメントで致命的なエラーを受け取るようになりました。だから明らかにファイルが存在しないか、ファイルのアクセス権が間違っていますか?結局のところとしてLinux:ファイルが存在し、存在しません。

いいえ、:

ファイルは、ファイルがSVNリポジトリからチェックアウトされている
存在しません。私がフォルダに入り、ファイル(lsまたはls -l)をリストすると、そのファイルは明確に存在し、正しいファイルサイズを持っています。リポジトリ内のファイルを更新して作業コピーを更新すると、変更は作業コピーにコピーされます。ファイルには権限755があるので、誰もがそれを見たり読んだりできるはずです。同じディレクトリにある他のファイルは正常に動作しています。

ファイルも存在しません:ファイルが見つからないため
PHPは致命的なエラーで終了します。 コマンドを検索すると、ファイルが見つかりません。 ナノを使用してファイルを編集しようとすると、ファイルが存在しないと主張します。ファイル名の入力を開始し、タブを押してオートコンプリートすると、ファイルを見つけることができません。

この動作は2つの別々のサーバーで発生しましたが、3番目のサーバーで正常に動作します。すべてのサーバがUbuntu 10.04を実行します。

誰が何が起こっているか考えている人はいますか?

EDIT:
ファイル名はAdminIpv4RangeAddFormHandler.incです。不明瞭ファイルパスと

フルエラーメッセージは、(とりわけ)

find -name AdminIpv4RangeAddFormHandler.inc -ls 

正規LS -Li出力する行:

Warning: require_once(fullpath/AdminIpv4RangeAddFormHandler.inc): failed to open 
stream: No such file or directory in fullpath/anotherfile.inc on line 34 Fatal error: 
require_once(): Failed opening required 'fullpath/AdminIpv4RangeAddFormHandler.inc' 
(include_path='.:/usr/share/php:/usr/share/pear') in fullpath/anotherfile.inc on line 
34 

次のコマンドは、出力を生成しません。

2233407 -rwxr-xr-x 1 root root 1597 2011-12-13 08:02 AdminIPv4RangeAddFormHandler.inc 
+1

'ls -li'と' find ... -ls'の出力をここに追加できますか?これは確かに不自然に聞こえる。 – sarnold

+6

実際のエラーメッセージを投稿せずにPHPエラー**に関する質問をすることは絶対に意味がありません。問題を説明する言葉をあまりにも多く無駄にしないでください。これは熱狂的な小説家のサイトではなく、これは熱心なプログラマーのサイトです。実際のエラーメッセージとコンソール出力のコピー/ペーストで十分です –

+0

ファイル名は何ですか? – meouw

答えて

5

はあなたのファイル名が得意長い見てください。

+0

母。私は受け入れとdownvoteを取得し、あなたはupvoteを取得します。私はちょうど逆の邪魔からもう一度あなたをアップアップしています。 – landons

+0

ハハ。そして、受け入れも受け取ります。これはBSです。 :P – landons

+0

"逆の愚か者"、hehehe、それは素晴らしいです。 :Dあなたのポイントはあまりにも心配しないでください、あなたは70-2、私は30 + 15、あなたはまだ私たちの想像的なレースに先んじています。 :) – sarnold

9

OSの切り替えには注意してください。大文字と小文字が区別されるものもあれば、そうでないものもあります。

私はMacを開発用に使用しています(大文字と小文字は区別されません)ので、file_exists()やinclude_once()などにどのようなケーシングを使用しても問題ありません。次に、Ubuntu 11停止した作業が含まれます。私はあなたに同じ正確な問題があると思う。

私にとって難しい部分は、gitを使っているうちに、私のバージョンコントロールがファイル名の変更を変更として検出しなかったことです。実際には、すべてのファイルの名前を変更してプレフィックスを付け、コミットしてデプロイし、名前を変更して(一貫した大文字で!)、最後にコミットして再度デプロイする必要がありました。それは完全な痛みでした。

ストーリーのモラル - あなたの開発システムではなく、実動システム用のコード。あなたがIPまたはIpを選び、決定どこでもに固執する必要があり

AdminIpv4RangeAddFormHandler # from PHP 
AdminIpv4RangeAddFormHandler # from find command 
AdminIPv4RangeAddFormHandler # from ls output 
    ^

+0

は、svnではなく、git – ajreal

+0

私はそれを実現します。お使いのOSが大文字と小文字を区別しているかどうかわからない場合は、SCMも考慮する必要があります。 – landons

+0

i dun know、not not me – ajreal

関連する問題