8

file_exists()Linux サーバーの PHP 関数で奇妙な問題が発生しています。

画像を編集する前に file_exists を使用して画像がサーバー上にあるかどうかを確認すると、明らかな理由もなく失敗することがあります。ファイル パスは絶対パスであり、指定されたパスで 100% であることを ssh で確認しました。

file_exists() に失敗した画像は引き続きブラウザーに表示されます。var_dump(file_exists('/home/user/path/image.jpg'));コードは基本的に false を返しますが、違いはありません。

ファイルのアクセス許可/所有権は、すべてのイメージと親ディレクトリでまったく同じです。セーフモードはオフです。PHP エラーはありません。私は今困惑しており、何を探すべきかわかりません。

サーバー上の画像は次のとおりです。

/home/user/public_html/images/location/1.jpg -- will work
/home/user/public_html/images/location2/1.jpg -- won't work
/home/user/public_html/images/location2/2.jpg -- will work

私はサーバーへのルート アクセス権を持っているので、アイデアがあれば喜んで試してみます。

事前にアドバイスをいただきありがとうございます。追加情報が必要な場合はお知らせください。

編集: 以下のコメントの質問に答える。

  • はい、画像はあります。間違いなくキャッシュではありません。
  • セーフ モードはオフです (これについては、投稿で既に説明しました)。
  • パスはシンボリック リンクではなく、サーバー上のファイルの場所への直接リンクです。
  • フェニックス、一貫しています。作業ファイルは常に機能し、その逆も同様です。名前は1.jpg、1.thumb.jpgなどなので変な文字やスペースでも問題ありません。
[root@server ~]# ls -l /home/user/public_html/images/Hawkhurst/
total 92
-rwxr-xr-x  1 user user 24501 Aug 11  2009 1.jpg
-rwxr-xr-x  1 user user  1672 Aug 11  2009 1.thumb.jpg
-rwxr-xr-x  1 user user 14983 Aug 11  2009 2.jpg
-rwxr-xr-x  1 user user  1370 Aug 11  2009 2.thumb.jpg
-rwxr-xr-x  1 user user 17238 Aug 11  2009 3.jpg
-rwxr-xr-x  1 user user  1453 Aug 11  2009 3.thumb.jpg
-rwxr-xr-x  1 user user 14168 Aug 11  2009 4.jpg
-rwxr-xr-x  1 user user  1464 Aug 11  2009 4.thumb.jpg 
[root@server ~]#

777 と 755 の権限で試してみましたが、違いはありません。たとえば、このフォルダでは、1 と 2 は機能する可能性がありますが、3 と 4 は機能しません...

私は簡単なテストを実行して、apache/php が何として実行され、nobody として実行されるかを確認しましたが、これでは、まったく同じ権限で一部の画像が機能し、一部の画像が機能しない理由を説明できません。

編集 2:問題が解決しました。データベースから呼び出されたファイル名の末尾にスペースが含まれているものもありました...元のスクリプトを作成した人は、保存する前に何らかのクリーンアップを実行しませんでした。

4

4 に答える 4

4

実行してみてls -l /home/user/public_html/images/location/、出力を質問に追加してください。

これはおそらく許可の問題です。PHP には、おそらくファイルへの読み取りアクセス権がありません。

于 2011-01-08T16:16:30.110 に答える
1

Webで多くの検索を行った後、私は自分で解決策を見つけました。他の人に役立つことを願っています。apache httpd.conf で構成されているユーザーとグループが、apache グループとユーザーと同じであることを確認してください。

于 2013-03-25T15:45:53.093 に答える
1

ファイル名に空白記号が含まれている可能性があります。それは重要です。

于 2014-09-22T13:45:25.240 に答える