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:
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>
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.
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.