如何在Azure上的PHP webjob中压缩文件?

时间:2015-08-24 08:23:09

标签: php azure azure-webjobs

我正在将PHP网站和相关的计划任务移动到Azure。

我可以运行大多数webjobs,但是当它尝试执行命令行'zip'命令时(特别是因为Azure没有此实用程序可用),其中一个特别会失败:

exec('zip -9 -j '.$tmpdir.'GROUP-'.date('dmY').'-DMS14.zip '.$zip_images);

给予:'zip'不被识别为内部或外部命令

是否有可以在Azure上运行以压缩文件的等效模块/命令?

2 个答案:

答案 0 :(得分:2)

由于Azure网站在IIS上托管的Windows VM上运行,而“zip”不是Windows内置命令,因此我们无法在PHP中执行它。

@Rick Rainey利用PHP内置ZipArchive类获取此功能的想法是正确的,我们不需要在Azure上安装它,我想添加一些提示:

1,当我们添加Webjob时,作业脚本文件将在 D:\home\site\wwwroot\App_Data\jobs 上传,并 separated 进入 { {1}} 并作为子文件夹触发。

2,由于IIS使用continuous来处理这些PHP脚本,因此这里不会定义FastCGI个变量。所以我们可以改用文件的绝对目录。

这是我的测试代码段:

$_SERVER

答案 1 :(得分:0)

您需要以编程方式执行此操作,而不是尝试启动其他进程。

似乎PHP内置了库/函数来支持你想要做的事情。快速搜索显示此documentation解释了如何。

如果您需要.NET解决方案,则可以使用ZipFile class