我使用启动脚本安装 PHP,normallay 我会使用PHPAzure SDK的默认脚本,它安装最新的可用版本,但我绝对需要 PHP v5.3.8。
所以我编写了自己的安装脚本(我使用它而不是 install-php.cmd):
@ECHO ON
SET PHP_FULL_PATH=%~dp0PHP\v5.3\php-cgi.exe
SET NEW_PATH=%PATH%;%RoleRoot%\base\x86
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%',maxInstances='12',idleTimeout='60000',activityTimeout='3600',requestTimeout='60000',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PATH',value='%NEW_PATH%']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='%PHP_FULL_PATH%',resourceType='Either',requireAccess='Script']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /"[fullPath='%PHP_FULL_PATH%'].queueLength:50000"
问题是,我对编写启动脚本不是很熟悉。
而且我现在遇到的问题是,在部署包之后,PHP 处理程序路径完全错误,它总是指向我本地开发机器上某处的临时构建路径,而不是采用相对于最近的 approot 的路径。
也许您可以帮助我使用正确的参数配置此脚本?
我的自定义 PHP 安装的正确路径是:
approot/bin/PHP/v5.3/php-cgi.exe