douhuan6157 2017-08-17 15:11
浏览 112

Azure网站PHP API - 不允许使用500方法

I just completed PHP API on local server, and it works perfectly. Now I tried to deploy it on Azure Web App but obtained an error during any get/post request, like: enter image description here

Here is my web.config file:

<configuration>
    <location>
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <iisClientCertificateMappingAuthentication enabled="true" oneToOneCertificateMappingsEnabled="true" manyToOneCertificateMappingsEnabled="false" logonMethod="ClearText">
                        <oneToOneMappings>
                            <clear />
                            <add userName="domain\user" password="pass" certificate="the certificate blob" />
                        </oneToOneMappings>
                        <manyToOneMappings>
                            <clear />
                        </manyToOneMappings>
                    </iisClientCertificateMappingAuthentication>
                    <windowsAuthentication enabled="false" />
                </authentication>
                <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />
            </security>
            <defaultDocument enabled="true">
                <files>
                    <clear />
                    <add value="index.php" />
                    <add value="index.htm" />
                    <add value="index.html" />
                </files>
            </defaultDocument>
            <handlers>
                <remove name="PHP53_via_FastCGI" />
                <add name="PHP53_via_FastCGI" path="*.php" verb="GET, PUT, POST, HEAD, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK" modules="FastCgiModule" scriptProcessor="D:\Program Files (x86)\PHP\v5.3\php-cgi.exe" resourceType="Either" requireAccess="Script"
                />
            </handlers>
        </system.webServer>
    </location>
</configuration>
  • 写回答

1条回答 默认 最新

  • duanquanhan2333 2017-08-18 02:46
    关注

    By default, PHP v5.3 is not available on Azure Web App. It may cause your problem. You could upgrade the PHP runtime to v5.5 or higher.

    enter image description here

    Replace your handlers configuration with the following. It should work.

    <handlers>
        <remove name="PHP56_via_FastCGI" />
        <add name="PHP56_via_FastCGI" path="*.php" verb="GET, PUT, POST, HEAD, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK" modules="FastCgiModule" scriptProcessor="D:\Program Files (x86)\PHP\v5.6\php-cgi.exe" resourceType="Either" requireAccess="Script" />
    </handlers>
    

    If you wish to continue to run PHP 5.3 in your Azure Web App, follow the steps in How to: Use a custom PHP runtime to explicitly set the PHP runtime of your site.

    评论

报告相同问题?