У меня проблема с удалением каталога на сервере после его извлечения.
Я загрузил файл.zip на сервер, а затем создал файл с именем «андал ему разрешение 777 затем распаковал содержимое файла .zip в «ан«и это было хорошо.
Дело в том, Я не могу сейчас удалить любой файл в «ан«Однако переименование, кажется, работает нормально. Я смог переименовать» en «в» delete_me «и смог переименовать
это также суб-каталог.
Если я пытаюсь удалить один файл в «delete_me», например index.html, я получаю
Command: DELE index.html
Response: 550 index.html: Permission denied
Когда я пытаюсь удалить «delete_me» через FTP — FileZilla, он начинает цикл внутри директории и показывает это сообщение для каждого файла:
Response: 150 Opening BINARY mode data connection for MLSD
Response: 226 Transfer complete
Status: Directory listing successful
Command: DELE index.html
Response: 550 index.html: Permission denied
Command: CWD /httpdocs/_delete_me
Response: 250 CWD command successful
Когда я проверил (владелец / группу), я обнаружил, что это (48/48), в то время как другие каталоги или файлы, созданные мной, имеют (10618/2524).
Я попытался получить доступ через файловый менеджер панели управления хостингом, затем нашел (Группа пользователей) для папок внутри «delete_me» есть (апач / апач пока для моих файлов (/ psacln)
Когда я пытаюсь удалить файл из панели управления хостингом, я получаю
Error: Unable to remove file /httpdocs/_delete_me// var/www/vhosts/<hostname>/httpdocs/_delete_me/tmp: filemng failed: rm: cannot remove `/var/www/vhosts/<hostname>/httpdocs/_delete_me/tmp/index.html': Permission denied
filemng: Error occured during /bin/rm command.
Последнее, что я пытался изменить разрешение @chmod($dirPath, 0777);
и удалить rmdir($dirPath);
или же unlink($file);
но без результата.
Единственный ресурс, похожий на мою проблему, находится здесь (Форум Вопрос) но, кажется, это не было ответа (предоставленная ссылка для ответа больше не доступна).
** Итак, как удалить файл? **
Вам придется chmod все в этом каталоге.
попробуй это
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname));
$filemode = "0777"; // Set the permission
// Foreach item found set the permissions
foreach($iterator as $item) {
chmod($item, $filemode);
}
если вы собираетесь делать rmdir($dirPath);
обязательно сначала удалите все файлы из каталога, в противном случае я считаю, что удалить каталог не удастся.
И конечно, чтобы удалить файлы с помощью unlink($filepath);
будет работать после того, как будут установлены правильные разрешения.
Других решений пока нет …