Первая шишка, которая появилась у меня от столкновения с граблями WordPress на IIS: проблема с отображением картинок. Когда загружаешь изображение в ‘media’ вордпресса, оно не отображается и выдает ошибку:
HTTP Error 500.50 – URL Rewrite Module Error
Потыкавшись тут и там стало понятно, что это проблема с правами на папки. Права в IIS сделано очень.. как бы так помягче сказать — необычно, по сравнению с кристально понятной системой CHMOD *nux серверов.
Права IIS выставляются через свойство папки -> «безопасность». Все кто сидит на окошках привык наблюдать эту вкладку; менять что-то в ней в повседневной «локальной» работе встает необходимость крайне редко. И вот — на меся снизошло, что эта система собственно является виндовый аналогом CHMOD и для веб-сервера крайне важна ее корректная настройка.
В чем проблема:
Но вернемся к нашей ошибке. Оказалось, что PHP загружает вашу картиночку сначала во временную папку, по умолчанию это
C:\Windows\Temp
а уже затем перемещает ее в директорию веб-сервера
/blog/wp-content/uploads/..
Проблема с картинками возникает потому, что у сервера (IIS) не выставлены корректные права на временную папку
C:\Windows\Temp” directory
и когда туда загружается файл и затем PHP перемещает его — файл наследует «отсутствие прав». В итоге, файл в
/blog/wp-content/uploads/..
выдает ошибку 500, когда к нему обращаются.
Решение:
Выставить корректные права на папку временных файлов винды:
Windows\Temp
для этого жмем ПКМ на папку -> «безопасность» и назначаем права:
разрешить модификацию (“modify”) для пользователей IUSR и чтение («read») {имя_сервера}\IIS_IUSRS
Я бы рекомендовал вообще отделить временные файлы PHP от временных файлов системы. Для этого файл с настройками php, он будет примерно тут:
C:\Program Files (x86)\PHP\vX.X\php.ini
и настраиваем там значение
upload_tmp_dir
по умолчанию оно скорее всего будет
C:\Windows\Temp
в таком случае создаем новую папку и прописываем ее путь, например:
C:\temp_PHP
и выставляем права двум вышеупомянутым пользователям
O KEJ