Файлы не удаляются с диска при нажатии "Удалить навсегда"

3 апр. 2017 г., 18:08:35
Просмотры: 15.2K
Голосов: 7

Я загрузил новые файлы docx и pdf через медиабиблиотеку, и процедура завершилась успешно. Я могу подтвердить, что прямая ссылка на файлы работает.

Проблема возникает, когда я пытаюсь УДАЛИТЬ НАВСЕГДА эти файлы.

При нажатии на "Удалить навсегда" запись о файле удаляется из медиабиблиотеки, однако сам файл (и его прямая ссылка) остаются на диске. При этом WordPress показывает сообщение об успешном удалении.

Можете ли вы предложить возможные шаги для отладки данной процедуры?

WordPress 4.7.3 работает на IIS 8 с PHP 7.0.x. Я проверил права пользователя IUSR - на файлы установлен полный контроль.

Спасибо, Крис

5
Комментарии

Я сталкивался с подобной проблемой, когда "владелец" файла на сервере не совпадает с пользователем WordPress. Даже при правильных правах доступа, владение файлом может иметь значение.

WebElaine WebElaine
3 апр. 2017 г. 18:15:57

Или это может быть проблема с кешированием. У вас установлен плагин кеширования?

TomC TomC
3 апр. 2017 г. 18:33:21

@WebElaine Привет! Когда WordPress загружает файл, разве он автоматически не становится его владельцем?

mmystery mmystery
3 апр. 2017 г. 18:43:23

@TomC нет, никаких плагинов кэширования... Но (теоретически) может быть не связано? Так как файл остается в реальной папке на диске...

mmystery mmystery
3 апр. 2017 г. 18:44:18

mmystery, продолжу комментарий @webelaine. Файлы, которые загружаются, имеют другого владельца и разрешения по сравнению с, скажем, вашим wp-config файлом?

rudtek rudtek
3 апр. 2017 г. 18:50:47
Все ответы на вопрос 1
1
18

Итак, после нескольких попыток... оказалось, что это проблема (или особенность) мультиязычного плагина WPML.

  1. Для начала я правильно настроил права пользователей, как упомянула @WebElaine. На всякий случай, чтобы всё было настроено корректно. Подробнее в следующих статьях:
    Права на папку wp-content в Windows Server 2012
    https://www.chillies.co.za/news/4421/The-Correct-Permissions-for-WordPress-on-IIS/
    https://www.customfitonline.com/news/2013/6/20/solve-wordpress-on-windows-server-problems/
  2. В моём случае был установлен плагин WPML Media. По умолчанию, при загрузке каждого медиафайла плагин создаёт столько записей в базе данных, сколько установлено языков.

    Когда пользователь заходит в медиатеку и "окончательно удаляет" файл, удаляется только запись в базе данных, а не физический файл на диске. Пользователю нужно переключить каждый язык (в админке через флажки в верхней панели) и "окончательно удалить" конкретный файл для каждого языка. Подробнее здесь:
    https://wpml.org/forums/topic/deleting-from-media-library-does-not-delete-from-server/
    http://wpml.org/documentation/getting-started-guide/media-translation/

Когда удаляется последняя запись, физический файл также будет удалён.

Надеюсь, это поможет! :)

Крис

27 апр. 2017 г. 12:56:54
Комментарии

Спасибо! Это тот самый трюк :) Нам нужно удалить файл для всех языков, и в моём случае у меня также нет плагина WPML Media.

hayatbiralem hayatbiralem
19 янв. 2019 г. 14:23:35