【发布时间】:2017-08-27 16:59:50
【问题描述】:
我正在为一个 Azure 项目工作,该项目只能使用 Visual Studio CI 中的 ARM 模板进行部署,并且我们只有 Azure 门户的读取权限。
如果我能够使用 Kudu,我也不会使用,因为我无法从 Portal 访问。
我想要做的是覆盖一些 PHP 设置并为 Azure Web 应用程序启用一些额外的扩展。使用 Kudu 这很容易,但我不知道如何在 Web 应用程序部署之前的发布期间上传两种排除的文件类型 .dll 和 .ini 文件。
到目前为止,我尝试了以下对我来说有意义的步骤,但显然它不起作用并且是错误的方法。如果有人能指导我正确的步骤,我会很高兴。
我已按照https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-php-configure 中的说明设置PHP_INI_SCAN_DIR=d:\home\site\ini
我正在上传具有以下任务的文件,并且可以在日志中看到它们上传。我还尝试使用带有已定义变量的路径(例如$(Agent.ReleaseDirectory))而不是绝对路径,但它没有改变任何东西。
似乎 PHP 正在寻找 d:\home\site\ini 文件夹,但找不到任何 ini 文件。我设置的其他选项也没有改变。
ini文件的内容;
; extensions.ini
; Enable Extensions
extension=d:\home\site\ext\php_redis.dll
; Settings
memory_limit = 256M
upload_max_filesize = 10M
更新
还有应用服务部署任务,
以及来自应用程序设置的虚拟应用程序和目录
【问题讨论】:
-
查看
extension_dir值? - “PHP 应该在哪个目录中查找可动态加载的扩展。另请参见:enable_dl 和 dl()。”不要与 php_ini_scan_dir 混淆。 -
抱歉,我是倒着读的。不得不问,你上传文件后重启了吗?
-
复制文件任务在应用部署之前完成。应该不需要重启。此外,我无法从门户重新启动应用程序。
-
Azure App Service Deploy任务的详细设置是什么?应用服务的虚拟应用程序和目录的详细设置是什么? (在Azure门户中打开应用服务>应用程序设置>虚拟应用程序和目录)复制文件任务只是用于复制当前机器(代理机器)上的文件
-
@starain-MSFT 我已经更新了问题并附上了截图。除了屏幕截图之外,Azure App Service Deploy 任务中没有其他设置。
标签: php azure continuous-integration azure-devops azure-web-app-service