私のプロジェクト ディレクトリは /public_html/test/ です
所有権と許可は以下のとおりです。
drwxrwsr-x 8 lamp apache 4096 Apr 8 10:46 public_html
drwxrwsr-x 6 lamp apache 4096 Apr 2 14:58 test
Web アプリケーションがディレクトリを作成し、いくつかのファイルをアップロードし、あるディレクトリからディレクトリ /public_html/test/files/ の下の別のディレクトリにファイルを移動します。
drwxrwsr-x 21 lamp apache 4096 Apr 24 13:58 files
問題は、Webアプリケーションを使用して「mydirectory」というディレクトリを作成したことです。次のように/public_html/test/files/の下に作成されました。
drwxrwsrwx 2 apache apache 4096 Apr 15 13:56 mydirectory
次に、「myfile.jpg」という1つのファイルをアップロードしました。これは、デフォルトで/public_html/test/files/にアップロードされます
-rwxrwxrwx 1 apache apache 595284 Apr 15 13:58 myfile.jpg
次に、私のコードはphp関数「move_uploaded_file」を使用して、ファイルを /public_html/test/files/ から /public_html/test/files/mydirectory/ に移動します。
move_uploaded_file('/public_html/test/files/myfile.jpg', '/public_html/test/files/mydirectory/myfile.jpg');
うまくいきません。これを修正するには?
/public_html/test/files/mydirectory/ の所有権を apache:apache ではなく lamp:apache に変更し、ファイルを再度アップロードすると、move_uploaded_file は正常に動作します。
注: ユーザー「lamp」は「apache」グループに属しています。
===================
PHP Safe_mode は ON でしたが、OFF にすると動作しました :)