Проводя работу с локальной копией сайта на WordPress под Windows в IIS, стал замечать, что не все загружаемые картинки и файлы доступны. Заметил это по ходу работы по оптимизации данных на страницах сайта. Оказалось, было что оптимизировать.

Если баз замечен, то надо точно определить его причину и исправить (или по-модному – пофиксить). Начал разбираться. Загружаю картинки для вставки в пост, вижу тамбнейлы. Вставляю в текст. Все ок. Вставляю среднего размера тамбнейл с ссылкой на файл. Вроде ок, но при попытке открыть полноразмерное изображение получаю сообщение об ошибке 500.

Открываю папку, куда должны были сохраниться файлы. Как ни странно, вижу 3 файла – маленький, средний и полный (полный размер был меньше большого). Начал думать, почему тамбнейлы доступны, а полное изображение нет? Оказалось, причина с одной стороны проста, с другой – если ты не администратор веб-серверов или хотя бы не имеешь опыта работы с последними, то отловить ошибку будет трудно.

При закачке картинок файлы помещаются во временную папку, в Windows это C:\Windows\Temp  по умолчанию. Но на папку  C:\Windows\Temp пользователь IIS_IUSRS прав не имеет! Потому файл технически загружается в C:\Windows\Temp, затем копируется в папку сайта. Но прав на закачанный файл у нужной учетной записи нет. Потому и выдается 500 ошибка.

Исправить такое поведение довольно просто – нужно выдать права учетной записи IIS_IUSRS на редактирование папки C:\Windows\Temp (см. рис).

Разрешения для загрузки изображений в IIS

Разрешения для загрузки изображений в IIS

После этого в сайт на WordPress попадают все файлы – и тамбнейлы, и полные изображения.