PHP работает как пользователь Apache. Ваша учетная запись FTP работает как пользователь fpadmin. Вот почему владельцы разные. Вы пробовали функцию chown() php (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')
Все еще грустно, поскольку я не смог воспроизвести ошибку и не искупить себя. Надеюсь, вы можете либо опубликовать полученную вами ошибку (разрешение отклонено?), Либо указать, как мой эксперимент отличается от вашего приложения.
Спасибо! Я установил сообщение об ошибке php.ini в E_ALL, и это именно то, что было возвращено. Любопытно то, что у меня есть PHP (пользователь «apache») создает каталоги И файлы (или загружает), но по какой-то причине папки и файлы назначаются другим пользователям ... – Nick