在Azure应用程序服务中加载PHP扩展时出现零星错误


Sporadic error when loading PHP extension in Azure App Service

我们有一个使用Redis PHP扩展的Azure应用服务。应用服务和扩展都是PHP 5.6/32位。我们正在按照Azure文档从settings.ini加载PHP扩展。

extension = "d:'home'site'wwwroot'ext'php_redis.dll"

每隔几周应用程序服务将无法加载扩展和站点中断。我们在日志中收到以下错误:

[06-11-2016 17:25:42 America/los - angeles] PHP警告:PHP启动:无法加载动态库'd:'home'site'wwwroot'ext'php_redis.dll' - %1不是有效的Win32应用程序。

这个问题会在几个小时后自行消失,可能是当应用程序服务重启或迁移到另一个VM时。我们在不同地区有一个相同的"二级"应用服务,从未出现过这个问题。

有人看到这种零星的故障吗?如何预防?

在文件路径正确形成的某些意外情况下可能引起的错误消息,例如,当存在文件存储故障转移、自动修复等时。我们已经测试了从应用程序设置安装php_redis.dll而不是PHP_INI_SCAN_DIR,这样php.ini将被修改为包含扩展路径。