Установка разрешения для PHP (или I_USER [здесь я не уверен]) для подключения к iisweb.vbs

Я пытался найти способ управлять нашими доменами на работе и легко создал класс SimpleDNS, но теперь я занимаюсь администрированием сервера IIS и просто не понимаю, что происходит.

Вот код PHP, который я запускаю, чтобы проверить его.

<?php
$cmd = 'iisweb /create c:\websites\examplesite.com\www "Example Domain!" /d www.examplesite.com';

exec($cmd,$data);
print_r($data);
?>

Но когда я запускаю его, я получаю:

Array ( [0] => Error &H80041003: Access denied

Я полностью озадачен тем, как настроить разрешения для этого.

Вот хорошая часть! Когда я запускаю <?php exec('ping google.com',$data);?>:, он работает без проблем.

Я понятия не имею, с чего начать, когда дело доходит до настройки разрешений для iisweb.vbs (файл iisweb vbs). Я даже не знаю, должен ли я устанавливать разрешения для этого файла. Я не знаю, должен ли я настраивать параметр CGI в консоли. Я потерялся.

Кто-нибудь может мне помочь? Что я здесь делаю?


person hatfieldajoshua    schedule 15.10.2009    source источник
comment
подробности об ОС, пожалуйста? также есть PHP в IIS?   -  person Sabeen Malik    schedule 16.10.2009
comment
Это IIS по умолчанию для Windows Server 2003. Я не уверен в версии, я едва подключился к удаленному рабочему столу. На этой машине также есть PHP.   -  person hatfieldajoshua    schedule 16.10.2009
comment
@jhat - Ты читал мой ответ? Наиболее вероятная причина, по которой вы не можете запустить iisweb, заключается в том, что пользователь, от имени которого выполняется PHP-код, не имеет прав администратора. Чтобы узнать, какой это пользователь, выполните шаги, описанные в моем ответе.   -  person Kev    schedule 16.10.2009
comment
Да, я читал, но вчера вечером дома ответил на его вопрос. Я сейчас на работе, поэтому скоро попробую ваше решение.   -  person hatfieldajoshua    schedule 16.10.2009


Ответы (1)


Ваш код будет работать под одним из двух идентификаторов.

  1. Идентификатор пула приложений, в котором работает веб-сайт (например, СЕТЕВАЯ СЛУЖБА, если использовались значения по умолчанию). Вы можете узнать это, открыв окно свойств пула приложений и выбрав вкладку Identity.

  2. Идентификатор анонимного пользователя веб-сайта, который вы можете найти в разделе «Свойства веб-сайта» -> «Безопасность каталога» -> «Аутентификация и контроль доступа» (нажмите кнопку редактирования).

FastCGI

Если вы используете PHP под FastCGI и значение конфигурации c:\php\php.ini fastcgi.impersonate = 1, тогда идентификатором пользователя будет анонимный пользователь сайта (вариант 2) выше. Если fastcgi.impersonate = 0, то PHP-скрипты будут выполняться под идентификатором пула приложений (вариант 1).

Вы можете узнать, настроен ли PHP для выполнения под FastCGI, посмотрев на карту сценариев .php для сайта (Свойства веб-сайта -> Домашний каталог -> Конфигурация -> Расширения приложений). Если установлено значение C:\WINDOWS\system32\inetsrv\fcgiext.dll, значит, вы используете FastCGI.

Без FastCGI

Если ваша карта сценариев .php не настроена на использование C:\WINDOWS\system32\inetsrv\fcgiext.dll, тогда сценарии будут выполняться под именем анонимного пользователя сайта (вариант 2 выше).

Во всех случаях используемая учетная запись должна иметь права администратора, чтобы иметь возможность запускать сценарии администрирования IIS.

person Kev    schedule 16.10.2009
comment
Я не использую FastCGI. Я установил безопасность каталога в моем каталоге /new, который содержит файл PHP, на администратора, и это не сработало. Я сохранил настройки. Нужно ли мне перезагружаться? Это действительно отстойно быть парнем, которому приходится делать это, когда наш подрядчик уехал из города... - person hatfieldajoshua; 16.10.2009
comment
Знаешь что. Я создал новый домен, начал с новой группы пользователей, и ЭТО РАБОТАЕТ. Пусть славные женщины Венеры помолятся за твою душу и дадут тебе похоть от меня к тебе. - person hatfieldajoshua; 16.10.2009
comment
Просто должен сказать - вы спасатель жизни. Я часами рылся в Интернете по этой же проблеме, а php.ini impersonate = 0 сделал свое дело! - person Lock; 29.04.2014
comment
@Lock рад быть полезным :) - person Kev; 29.04.2014