PHP работает как пользователь Apache.Ваша учетная запись FTP работает как пользователь 'fpadmin'.Вот почему владельцы разные.Вы пробовали функцию php chown () (http://php.net/manual/en/function.chown.php)? Это изменит владельца файла / каталога.
Приветствия
Тьфу, мой первый отрицательный голос.жало .. Это был глупый ответ, хотя ..
Хорошо, поэтому я пытаюсь понять ваш вопрос / повторить вашу ошибку. Вот то, что я пробовал, и вот мои результаты. Надеюсь, по крайней мере, это будетбыть полезным для вас.
У меня есть следующая структура каталогов:
/var/www/public_html/test (chmod = 777 via SSH, owned by 'ftpuser')
/var/www/public_html/test/index.php (chmod = 777 via SSH, owned by 'ftpuser')
/var/www/public_html/test/ftp_owned.file (chmod = 644 (default), owned by 'ftpuser')
Затем в файле index.php у меня есть следующий код:
mkdir("./downvoted");
chmod("./downvoted", 0777);
$h = fopen("./i_am_so.sad", "x+");
fwrite($h, "attempting to redeem myself");
fclose($h);
rename("./i_am_so.sad", "./downvoted/i_am_so.sad");
rename("./ftp_owned.file", "./downvoted/ftp_owned.file");
В результате получается новая структура каталогов:
/var/www/public_html/test (chmod = 777 via SSH, owned by 'ftpuser')
/var/www/public_html/test/index.php (chmod = 777 via SSH, owned by 'ftpuser')
/var/www/public_html/test/downvoted (chmod = 0777 via PHP, owned by 'apache')
/var/www/public_html/test/downvoted/i_am_so.sad (permissions = 644 (default), owned by 'apache')
/var/www/public_html/test/downvoted/ftp_owned.file (permissions = 644 (default), owned by 'ftpuser')
Все еще грустно, поскольку я не смог ни воспроизвести ошибку, ни выкупить себя. Надеюсь, вы можете опубликовать полученную ошибку (разрешение отклонено?) Или указатьчем мой эксперимент отличается от вашего приложения.