我正在尝试按照Windows Azure网站中的自定义PHP扩展下的说明进行操作,以启用Azure网站中运行的PHP的IonCube扩展名。这是我所做的:
- 从IonCube加载程序下载页面下载Windows VC9(non-ts)(x86)加载程序。
- 在/site/wwwroot/bin 创建一个目录
- ftp'd
ioncube_loader_win_5.3.dll
到该目录。 - 在网站的Azure门户中的"应用程序设置"下,我添加了带有value
bin/ioncube_loader_win_5.3.dll
的PHP_EXTENSIONS
。 - 我加载了http://my.azure.website/info.php,并验证了环境表是否包括
PHP_EXTENSIONS
=bin/ioncube_loader_win_5.3.dll
。它还包含APPSETTING_PHP_EXTENSIONS
=bin/ioncube_loader_win_5.3.dll
。 - 当我尝试加载网站时,我会收到消息:"由于发生了内部服务器错误,无法显示页面",也没有其他信息。
我忘记了某些东西,还是在Azure不支持IonCube?我是否正确设置了目录?
我还以相同的方式尝试了Zend Guard Loader扩展程序(Zendloader.dll)。我没有收到错误消息,但是该扩展名也未显示在phpinfo()中。
我发布了一篇文章,说明了如何在Windows Azure网站上配置ZendGuard
您将不是将模块放在FTP站点的根部。dll模块必须居住在应用程序root root 的文件夹中, site/wwwroot/
因此,您必须创建site/wwwroot/bin
或任何选择(即site/wwwroot/phpext
),然后MAP PHP_EXTENSIONS再次到bin/ioncube...
(或phpext/iocube...
),无论您的文件夹的名称在 site/wwwroot/
!
但是,当启用了上述模块时,我在运行任何PHP页面时遇到困难。我不知道这是因为我的文件不是IonCube加密的,还是由于IonCube本身的某些问题。因此,如果您有一个IonCube加密文件,则有机会测试。
ioncube是一个zend扩展,因此根据Windows Azure论坛上的答案:
正确的方法是创建/site/wwwroot/bin/bin 目录和upload ioncube_loader_win_5.4.4.dll ,然后在Portal App设置下添加a php_zendextensions 用 bin ioncube_loader_win_5.4.4.dll 设置为其值。
我确认,但我的测试是在/site/phpext
中进行的,并在..phpextioncube_loader_win_5.4.dll
上的应用程序设置。