для первого упоминания, этот вопрос является продолжением моего предыдущего вопроса here. И моя цель по-прежнему такая же. У меня есть сервер IIS7 (где я запускаю некоторый PHP) на сетевом диске (диск 1), когда я пытаюсь подключиться к другому сетевому диску (диск 2), где необходимо подключать файлы PDF с pdftotext.exe.Как установить права пользователей с IIS7 для доступа к каталогу сетевого диска
На диске 1 У меня также есть каталог виртуальных/ссылок (virDir) в каталоге (tarDir) на диске 2, когда все файлы, которые мне нужны для доступа, хранятся.
Когда я запускаю pdftotext.exe самостоятельно, все работает как шарм, на диске создается выходной файл с pdfcontent, и каждый счастлив до смерти. Но когда я пытаюсь выполнить PHP-скрипт, хранящийся на диске 1 в virDir, который запускает pdftotext.exe через команду exec, он возвращает 1, и файл не создается.
В моем последнем вопросе я понял, что это будет, вероятно, проблема с разрешением, но я немного запутался, как их установить. У IIS7 есть некоторые внутренние пользователи, такие как IUSR и IIS_IUSRS, и когда я вызываю get_current_user();
в php, его набор для testUser.
Итак, какие разрешения мне нужно установить в оба каталога (virDir и tarDir), чтобы сервер мог получить их?
Я попробовал, чтобы testUser установил Modify, Read a Execute, содержимое папки List, Read, Write permissions для tarDir (диск 2) и IUSR, testUser и II_IUSRS прочитали команду «Выполнение», «Содержимое папки списка», «Чтение, запись» на tarDir (привод 1).
Когда я пытаюсь получить доступ к «нормальным» файлам, таким как txt, pptx и т. Д., Я могу прочитать их без проблем (im использует библиотеку php для него), но когда я пытаюсь использовать pdftotext.exe, он терпит неудачу.
Может ли кто-нибудь увидеть, что я делаю неправильно?
EDIT: Так что я сделал некоторые другие испытания, и, когда я запускаю этот COMAND (им currious, который работает под управлением командной строку)
echo "<br> who am i in command line? <br>";
$out = array();
exec('cmd /c whoami 2>&1',$out,$exitcode);
echo "<br />EXEC: (exitcode : $exitcode)";
echo "<hr /><pre>";
print_r($out);
echo "</pre>";
запущенный на диск 1 он показывает, что командная строка запущенный с помощью testUser, но когда я запускаю его на диске 1 virDir, он возвращает 1. Так что, вероятно, проблема с правами на выполнение команд в оболочке ... я буду apreaciaty любой подсказку ...