Estou tentando configurar um site no IIS no Windows 2016 usando appcmd.exe. Especificamente PHP e FastCGI. Estou correndo em um problema em que a especificação do parâmetro arguments com aspas simples falha. Eu não consigo descobrir como escapar disso ou que encantamento de citações é necessário. Aqui está o comando que funciona:
%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
Com o open_basedir no Windows, preciso
-d open_basedir=E:\Web\www.example.com;E:\Sessions\www.example.com;E:\Logs\www.example.com;E:\Temp\www.example.com
para ser colocado entre aspas simples. Assim:
-d open_basedir='E:\Web\www.example.com;E:\Sessions\www.example.com;E:\Logs\www.example.com;E:\Temp\www.example.com'
Se eu criar o aplicativo FastCGI primeiro sem argumentos, posso adicioná-los depois assim:
%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
Esse problema é que não posso alterar configurações adicionais depois, porque não posso especificar o caminho entre aspas simples com appcmd.
Eu posso fazer isso com a GUI do Gerenciador do IIS e por meio do código C #. Então, é definitivamente possível definir dessa maneira. Eu simplesmente não consigo obter o formato correto para appcmd.