我正在尝试自动配置
Windows 2012服务器,但我无法让
PHP工作.
这是我用来添加处理程序映射到IIS的命令:
New-WebHandler -Name "PHP-FastCGI" -Path "*.php" -Verb "*" -Modules "FastCgiModule" -ScriptProcessor "c:\php\php-cgi.exe" -ResourceType File
这正确地添加了处理程序映射,到目前为止一直很好.
但是,我仍然需要为可执行文件手动创建FastCGI应用程序以使其工作.什么是PowerShell命令来自动执行此操作?我找不到任何指向正确方向的东西.
我正在研究同样的问题.此脚本将更新您的apphost配置以创建FastCGI进程池和处理程序映射.
import-module WebAdministration ############################################################### # Adds a FastCGI process pool in IIS ############################################################### $php = 'C:\php\php-cgi.exe' $configPath = get-webconfiguration 'system.webServer/fastcgi/application' | where-object { $_.fullPath -eq $php } if (!$configPath) { add-webconfiguration 'system.webserver/fastcgi' -value @{'fullPath' = $php } } ############################################################### # Create IIS handler mapping for handling PHP requests ############################################################### $handlerName = "PHP 7.0.12" $handler = get-webconfiguration 'system.webserver/handlers/add' | where-object { $_.Name -eq $handlerName } if (!$handler) { add-webconfiguration 'system.webServer/handlers' -Value @{ Name = $handlerName; Path = "*.php"; Verb = "*"; Modules = "FastCgiModule"; scriptProcessor=$php; resourceType='Either' } } ############################################################### # Configure the FastCGI Setting ############################################################### # Set the max request environment variable for PHP $configPath = "system.webServer/fastCgi/application[@fullPath='$php']/environmentVariables/environmentVariable" $config = Get-WebConfiguration $configPath if (!$config) { $configPath = "system.webServer/fastCgi/application[@fullPath='$php']/environmentVariables" Add-WebConfiguration $configPath -Value @{ 'Name' = 'PHP_FCGI_MAX_REQUESTS'; Value = 10050 } } # Configure the settings # Available settings: # instanceMaxRequests,monitorChangesTo,stderrMode,signalBeforeTerminateSeconds # activityTimeout,requestTimeout,queueLength,rapidFailsPerMinute,# flushNamedPipe,protocol $configPath = "system.webServer/fastCgi/application[@fullPath='$php']" Set-WebConfigurationProperty $configPath -Name instanceMaxRequests -Value 10000 Set-WebConfigurationProperty $configPath -Name monitorChangesTo -Value 'C:\php\php.ini' # Restart IIS to load new configs. invoke-command -scriptblock {iisreset /restart }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。