首先,我们讨论azure网站上php的架构。
下图描述了windows azure网站上php的架构。该架构与本地iis上的php配置并无不同。
php请求的处理流程如下:
1. 客户端http请求到达http.sys(处理http请求的内核模块)
2. http请求被转发到网站的工作进程w3wp.exe
3. iis fastcgi模块负责处理php请求。
4. 根据具体情况,fastcgi模块启动一个新的php-cgi.exe,然后将请求转发到新的php-cgi.exe;或者将请求转发到一个现有的php-cgi.exe。fastcgi与php-cgi.exe之间的通信采用命名管道。
5. php-cgi.exe处理php请求,将结果返回给fastcgi模块
6. 最终响应通过http.sys发回客户端。
在azure网站上部署php时,您需要注意下面的事项:
1. azure网站默认启用php,如果不需要php可以通过管理门户网站关闭php功能。
2. azure网站不允许客户修改php的系统级别设置。
3. azure网站目前支持php 5.3,5.4,5.5版本,我们会在后续的文章中讨论如何配置其它版本。
4. azure网站目前只支持32位php。在管理门户网站将网站设置为64位模式,只是将w3wp.exe设置为64位。php-cgi.exe仍然是32位。
5. php-cgi.exe的实例数目由fastcgi模块根据负载和机器资源情况自动决定。
下一篇文章我们将讨论如何配置azure网站上的php。
