
У меня на сервере Windows 2008 установлены Ghostscript, ImageMagick и IIS 5.0.
У меня также есть PHP-скрипт, который запускает скрипт конвертации для создания миниатюр для PDF-файла, загружаемого в каталог:
<?php
$output = array();
$ret = 0;
echo exec('convert D:\content\myfile.pdf[0] D:\content\myfile_thumb_1.jpg', $output, $ret);
var_dump($ret);
?>
Я определил, что проблема в том, что скрипт при вызове из веб-браузера запускается от имени пользователя IUSR_[COMPUTERNAME].
Под учетной записью администратора команда успешно выполняется из строки CMD (разумеется).
Какие разрешения мне нужно изменить, чтобы разрешить создание миниатюры пользователем скрипта/IUSR?
Я попробовал изменить разрешения для следующих объектов:
- Каталог программных файлов GhostScript (разрешает выполнение, запись, чтение)
- Каталог ImageMagick (разрешает выполнение, запись, чтение)
- Каталог загрузки, в котором находятся миниатюры (разрешено чтение и запись)
Все через проводник Windows, правой кнопкой мыши по каталогу, свойства, а затем вкладка Безопасность. Я добавляю разрешения для [COMPUTERNAME]/Гости, потому что IUSR_[COMPUTERNAME] находится в группе Гости.
Я недостаточно хорошо знаком с IIS или Windows, чтобы знать это, но нужно ли перезагружать систему, чтобы обновить разрешения, или все должно работать после того, как я применю изменения? Яиметьперезапустил службу IIS.
Примечание: в сообщении выше я удалил полное имя компьютера и заменил его на [ИМЯ_КОМПЬЮТЕРА].