У меня есть скрипт PHP, который удаляет файлы. Он может удалять файлы из моего корневого каталога, но когда я пытаюсь удалить из подкаталога, он говорит «Permission denied». Я знаю, что файл существует, и PHP может получить к нему доступ, потому что я могу читать и писать в файл, но я не могу его удалить. Почему?PHP удаление файла из подкаталога?
EDIT: Если это актуально, я использую хостинг Zymic. Но у меня есть другой сайт на Zymic, где удаление работает отлично. Я не понимаю ...
EDIT: Я использую ajax для доступа к файлу PHP с кодом для удаления, а ajax отправляет имя файла для удаления. Я знаю, что имя файла, которое он отправляет, является правильным, потому что предупреждающее сообщение печатает его для меня. Код PHP просто:
$file=$_POST['file'];
echo unlink($file);
EDIT: Я исправил его! Я не знаю, почему это сработало, но я FTP-chmodded каталог от 755 до 775. Может ли кто-нибудь сказать мне, почему это сработало?
Пожалуйста, внесите свой код. – Tibor
Каковы разрешения для файла и каталога? Вы используете инструмент [обязательный контроль доступа] (http://en.wikipedia.org/wiki/Mandatory_access_control), такой как [AppArmor] (http://wiki.ubuntu.com/AppArmor/), [SELinux] (http : //en.wikipedia.org/wiki/Security-Enhanced_Linux), [TOMOYO] (http://tomoyo.sourceforge.jp/index.html.en) или [SMACK] (http: // schaufler-ca. ком /)? Любое из них может помешать удалению файла. Проверьте 'dmesg (1)' output и '/ var/log/audit/audit.log' для сообщений, которые могут быть связаны. – sarnold
@sarnold Почему бы вам не опубликовать это как ответ? – jjclarkson