Я пытаюсь настроить сайт в IIS в Windows 2016 с помощью appcmd.exe. В частности, PHP и FastCGI. Я столкнулся с проблемой, при которой не удается указать параметр arguments в одинарных кавычках. Кажется, я не могу понять, как избежать этого или какое заклинание кавычек требуется. Вот команда, которая работает:
%windir%\system32\inetsrv\appcmd.exe set config /section:system.webServer/fastCGI /+"[fullPath='c:\php\php-cgi.exe', arguments='-d open_basedir=E:\Web\www.example.com;E:\Sessions\www.example.com;E:\Logs\www.example.com;E:\Temp\www.example.com', maxInstances='0', instanceMaxRequests='10000']" /commit:apphost
С open_basedir в Windows мне нужно
-d open_basedir=E:\Web\www.example.com;E:\Sessions\www.example.com;E:\Logs\www.example.com;E:\Temp\www.example.com
следует заключить в одинарные кавычки. Как это:
-d open_basedir='E:\Web\www.example.com;E:\Sessions\www.example.com;E:\Logs\www.example.com;E:\Temp\www.example.com'
Если я сначала создам приложение FastCGI без аргументов, я могу добавить их потом следующим образом:
%windir%\system32\inetsrv\appcmd.exe set config /section:system.webServer/fastCGI /[fullPath='c:\php\php-cgi.exe'].arguments:"-d open_basedir='E:\Web\www.example.com;E:\Sessions\www.example.com;E:\Logs\www.example.com;E:\Temp\www.example.com'" /commit:apphost
Эта проблема заключается в том, что я не могу впоследствии изменить дополнительные настройки, потому что я не могу указать единственный путь в кавычках с помощью appcmd.
Я могу сделать это с помощью графического интерфейса IIS Manager и кода C #. Так что определенно можно установить это так. Я просто не могу найти правильный формат для appcmd.
Я наткнулся на ваш вопрос, пытаясь найти тот же ответ. Я обнаружил обходной путь и хотел сообщить вам.
Используйте функцию ввода-вывода XML в appcmd.exe. На сайте с правильными заголовками запустите appcmd list config / section: httpProtocol / xml> addheaders.xml и сохраните выходной файл. В другой системе вы можете запустить appcmd set config / in <addheaders.xml
Я уверен, что вы можете найти способ включить xml в сценарий, если не хотите полагаться на дополнительный файл.