问题排查

Articles about how to troubleshooting problems on Microsoft Azure Websites platform.


目前,Microsoft Azure网站不支持远程调试PHP站点。但是,您仍然可以使用XDebug扩展模块排错PHP网站问题。Xdebug是一个开源PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况。

下面具体介绍如何使用XDebug的性能分析功能查找PHP网站的性能瓶颈。在
Azure网站上的PHP — 配置PHP扩展模块中介绍了如何配置XDebug PHP扩展模块。

要启用XDebug的Profiling功能,需要创建一个包含如下内容用的.user.ini文件,并通过FTP上传到/site/wwwroot目录下。
继续阅读

xdebug profiler output

前边几篇文章分布介绍了Azure网站中的PHP,包括架构,配置等。今天我们介绍在Azure网站中PHP网站问题排查。

php_errors.log

Microsoft Azure网站自动记录PHP站点的错误日志,包括PHP页面运行过程中产生的异常也包括扩展模块相关的异常信息。这些错误日志记录在/LogFiles/php_errors.log文件中,您可以通过FTP下载该文件或者使用kudu站点在线查看。
继续阅读


Microsoft Azure网站允许客户启用自定义PHP扩展模块。Microsoft Azure网站的PHP默认启用了很多常用PHP扩展模块。具体的信息可以参考phpinfo()输出结果的EXTENSION部分。很多情况下,您的应用需要自定义的扩展模块,比如使用PHP Mongo DB扩展模块连接Mongo DB;比如需要启用XDebug调试扩展模块。Microsoft Azure网站提供了一个非常方便的方式来启用自定义扩展。

Microsoft Azure网站支持两种PHP扩展:PHP扩展模块和ZEND扩展模块。下面我们分别介绍如何启用这两种扩展模块。
继续阅读

php xdebug version

failed request tracing3

该文章最早以英文发表在Team的博客。
Windows AZure Web Sites FREB trace for slow requests

IIS失败请求跟踪

从IIS 7开始,IIS提供了一个非常实用的功能:失败请求跟踪。在页面运行时,IIS失败请求跟踪通过ETW记录整个页面处理过程的详细信息。通过分析请求跟踪结果可以定位或者缩小问题的范围。

IIS提供了两种失败请求跟踪规则:

  • 状态码(StatusCode)

指定要跟踪的HTTP状态代码,可以在该列表中输入多个以逗号分隔的状态代码。 还可以使用子状态代码来细分状态代码,如“404.2, 500”。比如某个页面间歇性返回404,您可以创建一个规则,跟踪状态码为404的请求。只有当服务器响应的HTTP状态代码为404是,IIS才会将跟踪结果保存下来。

  • 请求执行时间(timeTaken)

主要用于IIS请求耗费时间过长。比如,某个页面正常情况下响应时间为5秒。某些情况下,可能响应时间超过20秒。要排查该问题,您可以创建一个规则要求IIS跟踪执行时间超过15秒的请求。

 Azure网站中的失败请求跟踪
继续阅读