apache-PHP-ファイルの所有権/許可の問題-アップロードされたファイルにアクセスできない/アップロード後に見つからない
このSimple-Ajax-Uploaderプラグインを使用してファイルをアップロードしてから、このPHPライブラリを使用してファイルの処理を処理し、生成などを行いました。ランダムなファイル名、ファイルを保存するためのディレクトリのサイズ変更と指定など。
コードは次のとおりです:
<?php
require('../classes/class.upload.php');
require('../classes/User.php');
//Process a file uploaded via XMLHttpRequest
$handle = new upload($_FILES['uploadfile']['tmp_name']);
if ($handle->uploaded) {
$handle->file_new_name_body = User::generateRandomString();
$handle->image_resize = true;
$handle->image_x = 360;
$handle->image_ratio_y = true;
$handle->process('temp-uploads');
if ($handle->processed) {
echo json_encode(array('success' => true, 'newfilename' => $handle->file_dst_name));
$handle->clean();
} else {
exit(json_encode(array('success' => false, 'msg' => $handle->error)));
}
}
ファイルは正常にアップロードされますが、どういうわけかどのWebページからもアクセスできなくなります。また、ブラウザで「site-name.com/directory-name/filename.jpg」にアクセスしようとするとアクセスできなくなります。 404Notfoundと表示されます。
ファイルのアクセス許可の問題かもしれないと思いましたが、アップロードされたファイルにディレクトリを含むすべてのアクセス許可を与えた後でも、404NotFoundです。現在、ajaxによってアップロードされたファイルはcPanelファイルマネージャーに表示されますが、URLではアクセスできません。
最後に、好奇心から、cPanelを介して別のファイルをサーバーに直接アップロードしました。そのファイルにはアクセスできましたが、他のファイルには404NotFoundでアクセスできないままです。また、アクセスできないファイルの1つをtest.jpgに名前変更しましたが、アクセスできないままです。 ここで同様の問題を検索しようとしましたが、見つかりません。
ここで何が問題になっていますか?
編集:
これがファイルの所有権の問題であり、ファイルがアップロードされるディレクトリとその中のファイルの所有者のユーザー名がそれぞれ1128と99であることがわかりました。 質問のタイトルを変更して、「ファイルの所有権/許可の問題」を含めました。
また、アップロードされたファイルごとに、エラーログに次のメッセージが繰り返し表示されました。
[Sat May 26 09:28:05.584102 2018] [core:error] [pid 9320:tid 140646036481792] [client 209.126.90.118:59372] Caught race condition abuser. attacker: 1128, victim: 99 open file owner: 99, open file: /home/royalsee/public_html/php/MichenoCoop/dashboard/temp-uploads/32_3.JPG, referer: http://michenocoop.com/dashboard/temp-uploads/
答え :
解決策:
あなたはすでにそれをチェックしていることを知っています:
ファイルパーミッションの問題である可能性がありますが、アップロードされたファイルを提供した後 それらのディレクトリを含む)すべての可能な権限、それらはまだです 404が見つかりません
しかし、このS.Oの回答によると、問題はファイルの所有権 にある可能性があります。エラーログのこのエラーメッセージの意味は何ですか?:
不正な権限または所有権もこのエラーを引き起こす可能性があります。私は持っています アプリケーションディレクトリの所有権を変更することで解決しました。そうだった 以前はrootが所有していました。
ここでも、ログファイルに表示されるのと同じエラーが発生します:
https://alexantop.wordpress.com/2013/05/07/caught-race-condition-abuser/
同じ解決策で:
ファイルの所有権を「username」に変更します。
フォルダの所有権を確認して、
www-data
またはインターネットからアクセスできるユーザーに変更してみてください。お役に立てば幸いです!
答え :
解決策:
ホスティングプロバイダーのサポートに連絡したところ、問題は解決しました。
私は彼らに原因を説明するように頼みました、そして彼らはこれで答えました:
それが何を意味するのかわからないが、私の問題は解決したので、同じ問題を抱えている可能性のある他の人を助けるためにこれを投稿しています。お役に立てば幸いです。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。