Почему я не могу использовать shell_exec из скрипта PHP на сетевом ресурсе в IIS? - PullRequest
0 голосов
/ 19 марта 2010

У меня есть несколько сценариев PHP, которые находятся на сетевом ресурсе.Ради аргумента, давайте назовем долю \\nas\dev.У меня есть веб-сайт на \\w2k3dev\, настроенный в IIS6, который использует \\nas\dev\ в качестве домашнего каталога, установив «Общий ресурс, расположенный на другом компьютере».

Некоторые из моих сценариев используют shell_exec для выполнения функцийна сервере и вернуть результаты в мой скрипт.Опять же, ради аргумента, скажем, я просто получаю список каталогов, например, так:

echo shell_exec('dir');

  • Если я запускаю скрипт в IIS , яне выводить никаких данных - но также и журналы ошибок.
  • Если я настрою Apache на \\w2k3dev\ и настроу его для использования того же общего ресурса, скрипт будет работать нормально
  • Если я скопирую сценарий на локальный компьютер и запустлю его через IIS, он будет работать нормально.

Таким образом, проблема возникает только тогда, когда IIS настроен на использование общего сетевого ресурса со сценарием, содержащим shell_exec.Все остальные аспекты моих скриптов работают нормально.

Профилирование в procmon, я вижу, что cmd.exe работает совершенно по-разному, в зависимости от того, запускается ли он IIS или Apache.У меня есть более подробная информация, но ради краткости я пока опущу их, если кто-то не попросит более подробную информацию.

Большое вам спасибо за то, что посмотрели на это, я в своем уме.

С уважением

Iain

1 Ответ

1 голос
/ 19 марта 2010
...