Чтобы иметь возможность удалить файл:
- пользователь должен иметь права на запись в каталог PARENT
- НЕОБХОДИМО установить флаг ограниченного удаления для каталога PARENT
UPDATE:
Об ограниченном флаге удаления - с man chmod
:
ОГРАНИЧЕННЫЙ ФЛАГ УДАЛЕНИЯ ИЛИ КЛЕЙКА
Ограниченный флаг удаления или прикрепленный
бит это один бит, чей
интерпретация зависит от файла
тип. Для каталогов это мешает
непривилегированные пользователи от удаления
или переименование файла в каталоге
если они не владеют файлом или
каталог; это называется
ограниченный флаг удаления для
каталог, и обычно находится на
всемирно доступные для записи каталоги, такие как / tmp.
Для обычных файлов на некоторых старых
системы, бит сохраняет программу
текстовое изображение на устройстве подкачки, так что
будет загружаться быстрее при запуске; этот
называется липким битом.
Вы можете установить его, добавив 1 к первой восьмеричной цифре в режиме, например:
chmod 1xxx dirname
ОБНОВЛЕНИЕ 2:
Имеет ли пользователь, под которым выполняется php, права доступа к родительскому каталогу chmod?
Другими словами, вы уверены, что первый вызов chmod возвращает true?
chmod('./',0777);