Я только что закончил PHP API на локальном сервере, и он отлично работает. Теперь я попытался развернуть его в Azure Web App, но получил ошибку во время любого запроса get / post, например:
Вот мой файл web.config:
<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>
По умолчанию PHP v5.3 является не доступно в веб-приложении Azure. Это может вызвать вашу проблему. Вы можете обновить среду выполнения PHP до версии 5.5 или выше.
Замените свой handlers
Конфигурация со следующим. Он должен работать.
<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>
Если вы хотите продолжить запускать PHP 5.3 в своем веб-приложении Azure, выполните действия, описанные в Как: использовать пользовательскую среду выполнения PHP явно установить время выполнения PHP вашего сайта.
Других решений пока нет …