小编Pho*_*bus的帖子

部署时Azure php webrole随机错误500

我经历过azure php webrole部署的奇怪行为,当我浏览页面时显示错误500错误的每一次部署,但是如果我再次发布没有任何更改而不是它的工作,我试图在事件查看器中找到一些东西但是那里没什么

在此输入图像描述, 有什么建议?

一些调试信息:当发生错误时我使用远程桌面检查了IIS配置我注意到PHP处理程序指定了错误的路径,例如F:\ wwwroot\bin\php\php-cgi.exe但在服务器实际路径上是E:\wwwroot\bin\php\php-cgi.exe我认为驱动器号(F :)跟随我的系统从我发布的地方开始,但我说奇怪的是有一次它工作但是当我再次发布它时发生错误......

setup_web.cmd(我从https://azure.microsoft.com/en-us/documentation/articles/cloud-services-php-create-web-role/复制了它)

@ECHO ON
cd "%~dp0"

if "%EMULATED%"=="true" exit /b 0

msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES

SET PHP_FULL_PATH=%~dp0php\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,OPTIONS',modules='FastCgiModule',scriptProcessor='%PHP_FULL_PATH%',resourceType='Either',requireAccess='Script']" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config /section:urlCompression /doDynamicCompression:True /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config  -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json; charset=utf-8',enabled='True']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /"[fullPath='%PHP_FULL_PATH%'].queueLength:50000"
Run Code Online (Sandbox Code Playgroud)

更新:解决这个问题后,我认为问题是:我在E:\驱动器上有我的项目文件夹,当我第一次发布时,azure创建E:\驱动器并使用cmdlet设置php处理程序路径,但是当我再次发布时,azure删除驱动E:\并创建驱动器F:\并尝试再次使用IIS,而不是抛出以下错误:

F:\approot\bin>cd "F:\approot\bin\" 

F:\approot\bin>if "false" == "true" exit /b …
Run Code Online (Sandbox Code Playgroud)

php azure azure-web-roles

10
推荐指数
1
解决办法
755
查看次数

标签 统计

azure ×1

azure-web-roles ×1

php ×1