我正在将PHP网站和相关的计划任务移动到Azure。
我可以运行大多数webjobs,但是当它尝试执行命令行'zip'命令时(特别是因为Azure没有此实用程序可用),其中一个特别会失败:
exec('zip -9 -j '.$tmpdir.'GROUP-'.date('dmY').'-DMS14.zip '.$zip_images);
给予:'zip'不被识别为内部或外部命令
是否有可以在Azure上运行以压缩文件的等效模块/命令?
答案 0 :(得分:2)
由于Azure网站在IIS上托管的Windows VM上运行,而“zip”不是Windows内置命令,因此我们无法在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。