如何在Azure Websites中为PHP添加自定义扩展(Extension)

Azure Websites为网站运营提供了一种新型计算模式,无论网站是用.Net、PHP、Java或者Node.js开发,都可以部署并运行在Azure Websites上,并且部署和弹性伸缩变得非常简单和灵活。当你在将一个PHP网站部署到Azure Websites上时,往往需要一些PHP自定义扩展(Custom Extensions),例如连接MongoDB, MySQL, Redis Cache等等。Azure Websites产品组意识到这种需求,并为此提供了添加PHP自定义扩展的功能。本blog将为大家介绍如何在Azure Websites中为你的PHP网站添加扩展(以MongoDB扩展为例)。

如果对Azure Websites不了解,可以访问https://www.windowsazure.cn/home/features/web-site/,获取更多信息。

1. 下载扩展DLL文件。

下载前,你需要到Azure管理门户中找到所创建的Azure Websites,在配置页面中,确认运行环境支持的PHP版本。这里,我选择的是5.5。

 

接下来,进入https://pecl.php.net/package/mongo/1.6.6/windows,你会看到如下图所示的DLL选项。

PHP 5.5中有4种选择(NTS X86, TS X86,NTS X86, TS X86),如何进行选择呢?请遵循以下方法:

A. 如果你创建的Websites不是标准版的(Standard)的,只能选择32-bit版本(X86)。除非是标准版,并且Websites平台选择是64-bit的,可以选择X64。

B. 选择非线程安全版本(NTS)。

本例中,我使用的Websites是免费版(Free),所以,下载的是5.5 Non Thread Safe (NTS) x86版本的PHP扩展DLL。

 

2. 利用FTP工具在/site/wwwroot下创建bin目录,并将之前下载的DLL上传到bin目录中。

你可以在本地使用任何的FTP客户端工具连接Azure Websites提供的FTP地址。你可以在你所创建Websites的仪表板(Dashboard)页面中找到FTP连接地址,并创建或重置访问FTP的登录凭证。

我用的是FileZilla,登录Websites的FTP成功后,在site/wwwroot下创建bin,并将php_mongo.dll拷贝到该目录下。

3. 创建PHP_EXTENSIONS, 输入dll的相对路径。

接下来,回到Azure管理门户,进入Websites的配置页面,找到应用设置(app setting)选型。

在key中添加PHP_EXTENSIONS,并在value中添加bin\\php_mongo.dll。

注意:在value中输入的是相对路径,并使用\\ 反斜杠。否则,MongoDB扩展将无法被PHP正常加载。

 

4. 使用phpinfo()验证MongoDB是否被加载成功。

在site/wwwroot下创建一个phpinfo.php页面 ,添加如下代码:

<?php

 

phpinfo();

 

?>

浏览phpinfo.php页面,检查是否被正确加载。如果加载成功,如下图所示,会看到mongo。

5. 完成。