if ( !is_writable( $save_path ) ){
mkdir( $save_path, 0777, true );
}
$uploadfile = $save_path . basename($_FILES[$form_field_name]['name']);
if ( is_writable( $save_path ) ){
move_uploaded_file($_FILES[$form_field_name]['tmp_name'], $uploadfile)
}
これにより、アップロード ディレクトリ内に新しいディレクトリが作成されます。サーバーにパテして ls -la を実行すると、アクセス許可/所有権を使用してディレクトリが作成されます。
drwxr-xr-x Apache Apache
偉大な。ただし、アップロードされたファイルをその新しいディレクトリに移動すると、次のエラーで失敗します。
SAFE MODE 制限が有効です。uid が 0 のスクリプトは、uid 48 が所有する /var/www/vhosts/domain.com/httpdocs/media/uploads/DE へのアクセスを許可されていません
OK、エラーがどのように発生しているかがわかります-所有者とグループが「apache」に設定された状態で新しいフォルダーが作成され(ユーザー48だと思います)、ユーザー「root」はそれにアクセスできません(ユーザー0はrootです) 、 右?)。そして、セーフモードも私が777としてディレクトリを作成するのを止めており、その無限の知恵で、私が要求したことをしないことを決定したと思います。
しかし...私のPHPスクリプトはどのようにディレクトリを「apache」として作成し、ルートとしてそれらに移動しようとしていますか? そして、斧をセーフモードにせずにどうすればそれを回避できますか?