Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VSTS-在部署期间为Azure WebApp配置PHP设置_Php_Azure_Continuous Integration_Azure Devops_Azure Web App Service - Fatal编程技术网

VSTS-在部署期间为Azure WebApp配置PHP设置

VSTS-在部署期间为Azure WebApp配置PHP设置,php,azure,continuous-integration,azure-devops,azure-web-app-service,Php,Azure,Continuous Integration,Azure Devops,Azure Web App Service,我正在为一个Azure项目工作,在这个项目中,只能使用Visual Studio CI中的ARM模板进行部署,并且我们只有对Azure门户的读取权限 此外,如果我能够使用Kudu,我也不会使用,因为我无法从门户访问 我试图做的是覆盖一些PHP设置,并为Azure Web应用程序启用一些额外的扩展。使用Kudu这很容易,但我不知道如何在web应用部署之前的发布期间上载两种排除的文件类型.dll和.ini 到目前为止,我尝试了以下步骤,这些步骤对我来说是有意义的,但显然不起作用,而且是一种错误的方法

我正在为一个Azure项目工作,在这个项目中,只能使用Visual Studio CI中的ARM模板进行部署,并且我们只有对Azure门户的读取权限

此外,如果我能够使用Kudu,我也不会使用,因为我无法从门户访问

我试图做的是覆盖一些PHP设置,并为Azure Web应用程序启用一些额外的扩展。使用Kudu这很容易,但我不知道如何在web应用部署之前的发布期间上载两种排除的文件类型
.dll
.ini

到目前为止,我尝试了以下步骤,这些步骤对我来说是有意义的,但显然不起作用,而且是一种错误的方法。如果有人能用正确的步骤引导我,我会很高兴的

我已经设置了
PHP\u INI\u SCAN\u 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
更新 还有应用程序服务部署任务

以及应用程序设置中的虚拟应用程序和目录


虚拟应用程序和目录的根路径是site\wwwroot,因此如果通过Azure应用程序服务部署任务部署web应用程序,则所有文件都将部署到wwwroot文件夹

在将应用程序部署到azure应用程序服务之前,您可以通过Kudu API将特定文件上载到相应的文件夹(例如site\ini)

请参阅此线程,了解如何在VSTS构建中使用Kudu API:


请参阅本文以了解如何将文件上载到应用程序服务:。

虚拟应用程序和目录的根路径是site\wwwroot,因此,如果通过Azure应用程序服务部署任务部署web应用程序,则所有文件都将部署到wwwroot文件夹

在将应用程序部署到azure应用程序服务之前,您可以通过Kudu API将特定文件上载到相应的文件夹(例如site\ini)

请参阅此线程,了解如何在VSTS构建中使用Kudu API:


请参阅本文,了解如何将文件上载到应用程序服务:。

以下是我启用PHP扩展和配置PHP设置的方法

我放弃了在一个ini文件中设置所有内容的尝试。对于PHP设置,我在项目源代码的根目录中创建了一个
.user.ini
文件,并在那里设置PHP选项

; .user.ini
memory_limit = 256M
default_socket_timeout = 600
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 1200
max_input_time = 1200
但是,如果在构建阶段有一个文件类型筛选器,那么添加
*.ini
***.ini
不会将
.user.ini
文件包含到下载的工件中。为此,我调整了构建阶段,如下所示

对于PHP扩展,我使用了
PHP\u扩展
环境变量。我已使用复制文件任务将DLL文件复制到
D:\home\site\ext
,并设置
PHP\u EXTENSIONS=ext\PHP\u redis.DLL
。请参阅下面我的任务

也许将复制文件任务放在应用程序服务部署任务之前就足够了,并且不需要重新启动应用程序,但我还没有尝试过。为了重新启动应用程序,我正在使用Azure PowerShell,并在文件中写入以下脚本

Param(
    [string]$ResourceGroup,
    [string]$appName
)

Restart-AzureRmWebApp -ResourceGroupName $ResourceGroup -Name $appName | Out-Null
Write-Host "Started web app '$appName'"

希望它也能帮助其他人。

以下是我启用PHP扩展和配置PHP设置的方法

我放弃了在一个ini文件中设置所有内容的尝试。对于PHP设置,我在项目源代码的根目录中创建了一个
.user.ini
文件,并在那里设置PHP选项

; .user.ini
memory_limit = 256M
default_socket_timeout = 600
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 1200
max_input_time = 1200
但是,如果在构建阶段有一个文件类型筛选器,那么添加
*.ini
***.ini
不会将
.user.ini
文件包含到下载的工件中。为此,我调整了构建阶段,如下所示

对于PHP扩展,我使用了
PHP\u扩展
环境变量。我已使用复制文件任务将DLL文件复制到
D:\home\site\ext
,并设置
PHP\u EXTENSIONS=ext\PHP\u redis.DLL
。请参阅下面我的任务

也许将复制文件任务放在应用程序服务部署任务之前就足够了,并且不需要重新启动应用程序,但我还没有尝试过。为了重新启动应用程序,我正在使用Azure PowerShell,并在文件中写入以下脚本

Param(
    [string]$ResourceGroup,
    [string]$appName
)

Restart-AzureRmWebApp -ResourceGroupName $ResourceGroup -Name $appName | Out-Null
Write-Host "Started web app '$appName'"

希望它对其他人也有帮助。

查看价值?-“PHP应该在哪个目录中查找可动态加载的扩展。另请参阅:enable_dl和dl()。”不要与PHP_ini_scan_dir混淆。抱歉,请参阅我的反向阅读。不得不问,你上传文件后重启了吗?复制文件任务是在应用部署之前。应该不需要重新启动。此外,我无法从门户重新启动应用程序。Azure应用程序服务部署任务的详细设置是什么?app service的虚拟应用程序和目录的详细设置是什么?(在azure portal中打开应用程序服务>应用程序设置>虚拟应用程序和目录)复制文件任务刚刚用于复制当前机器上的文件(代理机器)@starain MSFT我已更新问题和附加屏幕截图。Azure应用程序服务部署任务中除了屏幕截图中没有其他设置。请参阅值?-“PHP应该在哪个目录中查找可动态加载的扩展。另请参阅:enable_dl和dl()。”不要与PHP_ini_scan_dir混淆。抱歉,请参阅我的反向阅读。不得不问,你上传文件后重启了吗?复制文件任务是在应用部署之前。应该不需要重新启动。此外,我无法从门户重新启动应用程序。Azure应用程序服务部署任务的详细设置是什么?什么是d